0

私はjavascriptとjqueryを使用して、残りのAPIを使用してparse.com経由で単純なテキストプッシュ通知を送信しています。これは動作します:-

$.ajax({
    type: 'POST',
    headers: {
        'X-Parse-Application-Id': "1234567890",
        'X-Parse-REST-API-Key': "1234567890"
    },
    url: "https://api.parse.com/1/push",
    data: '{"channel": "","type":"ios","expiration_interval":86400,"data":{"alert":"canned alert","badge" :0,"sound":""}}',
    contentType: "application/json"
});

しかし、これはしません:-

 var my_msg = "canned alert";
 $.ajax({
     type: 'POST',
     headers: {
         'X-Parse-Application-Id': "1234567890",
         'X-Parse-REST-API-Key': "1234567890"
     },
     url: "https://api.parse.com/1/push",
     data: '{"channel": "","type":"ios","expiration_interval":86400,"data":{"alert":my_msg,"badge" :0,"sound":""}}',
     contentType: "application/json"
 });

アラートの送信を「定型アラート」ではなく変数に置き換える方法が見つかりません。私は経験豊富なプログラマーではありませんが、parse.comのteschサポートでさえその理由を説明できませんでした。誰かが解決策を提案できますか?

4

3 に答える 3

2

2 番目のスニペットで単一引用符から my_msg 変数を削除すると、最初のスニペットとまったく同じように動作するはずです。

data: '{"channel": "","type":"ios","expiration_interval":86400,"data":{"alert":'+my_msg+',"badge" :0,"sound":""}}',

2 番目のスニペットの書き方では、JSON 文字列とオブジェクト リテラルを混同しているようです。

于 2013-03-18T20:55:46.387 に答える
0

データをオブジェクトとして渡すことができます。引用符は必要ありません。jQuery が処理します。

var my_msg = "canned alert";
$.ajax({
    type: 'POST',
    headers: {
        'X-Parse-Application-Id': "1234567890",
            'X-Parse-REST-API-Key': "1234567890"
    },
    url: "https://api.parse.com/1/push",
    data: {
        channel: "",
        type: "ios",
        expiration_interval: 86400,
        data: {
            alert: my_msg,
            badge: 0,
            sound: ""
        }
    },
    contentType: "application/json"
});
于 2013-03-18T20:58:43.860 に答える
0

JSON.stringifyプレーン オブジェクトから JSON を構築するために使用できます。

var my_msg = "canned alert";
$.ajax({
  type: 'POST',
  headers: {'X-Parse-Application-Id':"1234567890",'X-Parse-REST-API-Key':"1234567890"},
  url: "https://api.parse.com/1/push",
  data: JSON.stringify({
    "channel": "",
    "type":"ios",
    "expiration_interval": 86400,
    "data":{
      "alert": my_msg,
      "badge" :0,
      "sound":""
    }
  }),
  contentType: "application/json"
});

を使用JSON.stringifyすると、「my_msg」内のすべての特殊文字が正しくエスケープされるため、JSON が有効であることが保証されます。

于 2013-03-18T20:56:28.217 に答える