我正打算致电Petfinder.com获取我们的宠物清单。网址为http://api.petfinder.com/shelter.getPets?key=xxxxx&id=CA1469&format=json
该网址似乎返回JSON罚款。但是当我尝试进行调用时,我得到“错误”并且状态代码为0.我尝试使用jsonp,这导致状态为200但是解析错误。如果我改为xml,我得到状态0和“错误”的结果。
$.ajax({
url: "http://api.petfinder.com/shelter.getPets?key=xxxx&id=CA1469&format=json",
dataType: "json",
type: "GET",
success: function (data) {
alert("hi");
},
error: function (jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Not connect.\n Verify Network.');
} else if (jqXHR.status == 404) {
alert('Requested page not found. [404]');
} else if (jqXHR.status == 500) {
alert('Internal Server Error [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.');
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax request aborted.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
}
});
答案 0 :(得分:2)
您需要确保当服务器向您发送错误响应时,它还会发送正确的CORS标头。
如果没有浏览器不允许您的JavaScript代码看到来自该域的任何信息,甚至是状态代码。
答案 1 :(得分:1)
您正在遇到 XSS CORS问题。最佳解决方案是在Web服务器上设置代理,并通过它路由AJAX调用。