0

我正在尝试使用标准发送广播消息。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>
4

2 回答 2

0

如果远程服务器未添加Access-Control-Allow-Origin标头,则 AJAX 调用将使“同源策略”失败,并且查询将被拒绝。

解决这个问题的正常方法是修改您的 URL,以便 jQuery 将尝试使用 JSONP 而不是纯 JSON。

您可以通过两种方式做到这一点:

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

或通过添加:

dataType: 'jsonp'
于 2011-11-01T14:16:17.733 回答
0

除了使用

dataType: "jsonp",

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

statusCode: {
    200: function() {
        alert('message sent!');
    },
    500: function(  ) {
        alert('500 error');
    }
}
于 2013-04-23T16:43:52.190 回答