【问题标题】:Ajax jqXHR.status==0 fix errorAjax jqXHR.status==0 修复错误
【发布时间】:2014-05-22 09:12:40
【问题描述】:
 $.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 错误。我不确定如何解决这个问题,因为我看不出我的代码有什么问题。

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

【问题讨论】:

  • 相关,可能重复:jquery ajax jqXHR.status is always 0.
  • 不,我已阅读该帖子并且它是相关的,但该页面没有任何操作。它在文档准备好时运行。

标签: javascript ajax json


【解决方案1】:

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

你只需要根据你从哪里获取文件有不同的行为。

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

【讨论】:

  • @user3664250:是的。如果您在其上运行 Web 服务器并通过它获取文件,则可以从您自己的计算机上获取它。
  • 看到我想过通过 wamp 和在线访问服务器来做到这一点,但它仍然给了我 jqXHR.status==0
  • @user3664250:这很奇怪。可以通过wamp浏览到文件吗?
  • 你在说什么文件?本地的还是服务器上的?
  • @user3664250:本地。
【解决方案2】:

JQXHR 状态:0

原因:调用Ajax函数时请求没有取消。

解决方法:只需在调用函数后加上return false;即可,即 OnClientClick="AJAXMethod(); return false;"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    • 2021-01-10
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 2014-09-21
    相关资源
    最近更新 更多