JQuery ajax调用获取状态代码0“;“错误”;

JQuery ajax调用获取状态代码0“;“错误”;,jquery,ajax,xmlhttprequest,jqxhr,Jquery,Ajax,Xmlhttprequest,Jqxhr,我想打电话给Petfinder.com,获取我们宠物的名单。网址是 url似乎返回了JSON格式。但是当我尝试打电话时,我得到了“错误”和状态代码0。我尝试使用jsonp,结果状态为200,但分析错误。如果我更改为xml,则结果为状态0和“错误” 您遇到了XSS CORS问题。最好的解决方案是在您的web服务器上设置一个代理,并通过它路由AJAX调用。您需要确保当服务器向您发送错误响应时,它也会发送正确的CORS头 如果不允许,浏览器将不允许您的JavaScript代码看到来自该域的任何信息,甚

我想打电话给Petfinder.com,获取我们宠物的名单。网址是

url似乎返回了JSON格式。但是当我尝试打电话时,我得到了“错误”和状态代码0。我尝试使用jsonp,结果状态为200,但分析错误。如果我更改为xml,则结果为状态0和“错误”


您遇到了XSS CORS问题。最好的解决方案是在您的web服务器上设置一个代理,并通过它路由AJAX调用。

您需要确保当服务器向您发送错误响应时,它也会发送正确的CORS头


如果不允许,浏览器将不允许您的JavaScript代码看到来自该域的任何信息,甚至是状态代码。

您的控制台中是否出现
同源
错误?你在用IE吗?跨源请求需要以JSONP(需要正确的JSONP响应)或启用CORS(需要服务器支持CORS和浏览器支持CORS)的形式发送。jQuery不支持IE<10中的CORS。Trello的API客户端库有一个很好的例子说明了它们如何处理CORS支持:KevinB提到的可能重复;我想你指的是CORS,而不是XSSI,我正在使用AWS Api网关进行应用。。。同样的问题。。。您能否建议一个首选CORS策略,以解决此错误。我现在使用一个简单的ajax调用来测试它,该调用在body标记的“onload”事件上运行
 $.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);
             }

         }
     });