Ajax jqXHR.status == 0修复错误

时间:2014-05-22 09:12:40

标签: javascript ajax json

 $.ajax({
         url: urlString,
         dataType: "json",
         type: "GET",
         success: function (data) {
             alert(data);
         },
         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);
             }

         }
     });

这是我用来从服务器访问某些信息的javascript文件。 urlString是提供的并且是正确的。我所做的是从我正在检索的服务器下载.json,并在我的计算机上本地访问它。当我从服务器访问该文件时,我不断收到jqXHR.status == 0错误。我不知道如何解决这个问题,因为我的代码看不出任何问题。

有人能指出我正确的方向来解决我的错误吗?

2 个答案:

答案 0 :(得分:2)

您获得不同状态代码的原因是该文件未使用http:协议但使用file:协议获取。不同的协议具有不同的状态代码是很自然的。

根据您从何处获取文件,您只需要具有不同的行为。

Mozilla bug report about this,标记为无效,因为这被认为是正确的结果。

答案 1 :(得分:1)

JQXHR状态:0

原因:调用Ajax函数时请求不会取消。

分辨率:在调用函数后,只需添加return false;,即 OnClientClick="AJAXMethod(); return false;"