【发布时间】:2013-04-04 15:14:48
【问题描述】:
我正在构建应用程序和服务器(不幸的是在不同的域上)
在我拥有的应用程序上:
$.ajax({
url: BASE_URL + "api/create",
type: "get",
async: false, // why do I need this
dataType: "jsonp",
data: {
"auth_token": "cBQHASwKszsW4e75unK6"
},
error: function(error) {
alert(JSON.stringify(error));
},
success: function(data) {
alert(data);
}
});
我知道服务器正在返回(当我在浏览器中访问它时):
jQuery1910041686943266540766_1365730282085({"error":"User does not exist","status":400})
(这是正确的数据)
但是,ajax 请求失败并被列为“失败”状态并键入“待处理”
我不确定这里发生了什么
我也试过了:
$.getJSON(BASE_URL + "api/create?auth_token=cBQHASwKszsW4e75unK6&callback=?", function(data) {
alert(JSON.stringify(data));
});
也失败了
【问题讨论】:
-
你得到
jQuery1910041686...却没有指定回调函数变量?您在Firebug中的Net选项卡中获得了什么地址? -
async据我所知,对于 jsonp 不能为假。不是说它与您的问题有关,而是跨域 jsonp 请求添加了一个脚本标签,并且是异步的。 -
localhost:3000/api/create?callback=jQuery19101939692951273173_1365751304024&auth_token=cBQHASwKszsW4e75unK -回答第一个问题,回调参数显然是由jquery添加的
-
我将 async 设置为 true ,但它仍然失败。还增加了 10 秒的等待,但仍然失败
-
对不起,我的意思是我试过了
标签: jquery cross-domain