我正在尝试从api中检索json数据。 它一直在失败,但是当我查看Firebug的Net选项卡时,我可以看到GET请求已执行并返回了正确的数据。我做错了什么或有没有人提供如何调试的提示?
编辑:已更改为dataType json且错误状态代码为0
由于
$.ajax({
url: 'http://localhost:55894/api/Test/All',
data: {
format: 'json'
},
error: function () {
alert('Error');
},
dataType: 'jsonp',
success: function (data) {
alert('Ok');
},
type: 'GET'
});
答案 0 :(得分:1)
根据您提供的信息,它失败的原因是您没有跨域访问策略设置。因为您使用不同的端口来托管网站以及您遇到此问题的API。您可以使用适当的安全设置设置crossdomain.xml,也可以将API和Web服务器都移动到同一端口。
有关详细信息,请查看此信息:http://en.wikipedia.org/wiki/Same-origin_policy
答案 1 :(得分:0)
$.ajax({
type: 'GET',
url: 'url api here',
beforeSend: function() {
},
success: function(data) {
},
error: function(xhr) { // if error occured
},
complete: function() {
},
dataType: 'json'
});
答案 2 :(得分:0)
JSON
和JSONP
不同。如果您使用的是JSONP
,则服务器端必须准备好支持它。您似乎没有使用JSONP
。
因此,只需将dataType
更改为'json'
即可,并尝试检索json数据"。