城市飞艇-使用Json发送广播消息

urban airship - sending Broadcast message using Json

本文关键字:广播 消息 Json 使用 城市      更新时间:2023-09-26

我正在尝试使用std. html/javascript发送广播消息到Android设备。我在stackoverflow上找到了一个脚本,但我无法让它工作。它不返回任何错误。然后从城市飞艇管理员那里发送一条消息,它工作得很好。我是不是漏掉了什么??

<script language="JavaScript1.2" type="text/javascript">
var ruleObj = {
    "android": {"alert": "test"}
}
;
var objStr = JSON.stringify(ruleObj);
// username : Application Key;
// password : Application Master Secret;
    jQuery(document).ready(function(jQuery){ 
        jQuery.ajax({
        type: "POST",
        contentType:"application/json",
        username: "qE.........",
        password: "zp........",
        url:"https://go.urbanairship.com/api/push/broadcast/",
        data: objStr,
        success: function(data){
                            alert(data);
            }
        });
    });
</script>

如果远程服务器没有添加Access-Control-Allow-Origin标头,那么AJAX调用将在"同源策略"中失败,查询将被拒绝。

解决这个问题的正常方法是修改你的URL,使jQuery将尝试使用JSONP而不是普通的JSON。

有两种方法:

url: "https://go.urbanairship.com/api/push/broadcast/?callback=?"

或添加:

dataType: 'jsonp'

除了使用

dataType: "jsonp",

您还需要使用statusCode参数。由于您将无法获得有效的JSON返回,因此您需要检查传回的状态码,以确定调用是否成功:

statusCode: {
    200: function() {
        alert('message sent!');
    },
    500: function(  ) {
        alert('500 error');
    }
}