【发布时间】:2012-12-06 11:43:10
【问题描述】:
我正在尝试获取一个托管在此处的本地服务器中的 JSON,但由于某种原因它不起作用。如果我在浏览器上点击我的 url,它会正确返回 Json,如果我使用另一个 URL,我会得到一些数据。
我原来的getJson方法:
getJson:
$.getJSON(url,
function(data) {
console.log('got something');
alert(data);
});
现在我想看看到底出了什么问题。我已经将它重写为 Ajax 请求,并且在我的错误回调中,jqxhr 给了我很多我不明白的东西。我可以获得有关此错误的更多详细信息吗?
TextStatus 值为"error"
errorThrown 是null
$.ajax({
url: url,
dataType: 'json',
success: function(data) {
console.log('got something');
alert(data);
},
error: function(jqxhr,textStatus,errorThrown)
{
console.log(jqxhr);
console.log(textStatus);
console.log(errorThrown);
for (key in jqxhr)
alert(key + ":" + jqxhr[key])
for (key2 in textStatus)
alert(key + ":" + textStatus[key])
for (key3 in errorThrown)
alert(key + ":" + errorThrown[key])
//<--- All those logs/alerts, don't say anything helpful, how can I understand what error is going on? ---->
}});
最后,我应该返回的 json 是
[{"message": "login failed"}]
而且我不能使用 firebug、chrome 控制台或任何其他开发工具,因为这是使用 Phonegap 开发的移动应用程序!
【问题讨论】:
-
该 URL 是否与您当前的页面在同一个域、子域和协议上?
-
使用 firebug 或 chrome 的开发者工具,点击网络和 xhr 可以看到来自 url 的响应
-
您是否使用 Firebug/Fiddler/Chrome 开发工具的“网络”选项卡查看响应代码和文本是什么?
-
URL 位于不同的域中。我无法检查萤火虫,因为我在手机上运行它,它是一个 Phonegap 应用程序。我可能应该在问题中这么说!
-
似乎它返回的不是有效的 JSON?尝试接受不同的数据类型,看看返回了什么内容?
标签: javascript android jquery ajax cordova