带有parse.com的javascript/jquery/RESTAPI
我使用javascript和jquery通过parse.com使用RESTAPI发送一个简单的文本推送通知。 这项工作:-带有parse.com的javascript/jquery/RESTAPI,javascript,jquery,api,rest,parse-platform,Javascript,Jquery,Api,Rest,Parse Platform,我使用javascript和jquery通过parse.com使用RESTAPI发送一个简单的文本推送通知。 这项工作:- $.ajax({ type: 'POST', headers: { 'X-Parse-Application-Id': "1234567890", 'X-Parse-REST-API-Key': "1234567890" }, url: "https://api.parse.com/1/push", d
$.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的支持也无法解释原因;有人能提出解决方案吗 从第二个代码段的单引号中取出my_msg变量,它的行为应该与第一个完全相同:
data: '{"channel": "","type":"ios","expiration_interval":86400,"data":{"alert":'+my_msg+',"badge" :0,"sound":""}}',
按照编写第二个代码段的方式,您似乎混淆了JSON字符串和对象文字。您可以使用
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是有效的。您可以将数据作为对象传递,不需要任何引号,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"
});
您确定API正确地处理和解释HTTP参数吗?(可能吧,我不确定。)我总是这样使用它。我不确定它是否是JSONP,但POST应该可以。文档说明,
data选项可以包含形式为key1=value1&key2=value2的查询字符串,也可以包含形式为{key1:'value1',key2:'value2'}的对象。如果使用后一种形式,数据将转换为查询字符串
Yes,我知道jQuery本身就是这样工作的——我不知道调用的API(parse.com?)是否需要JSON blob或名称/值HTTP参数。(请注意,OP说发送一个完整的非动态JSON字符串是可行的。)你能详细说明一下你的答案吗?你能详细说明一下在这种情况下“不起作用”是什么意思吗?您是否返回了错误响应,或者请求成功但未发送推送通知?