Firefox一直将ajax状态作为错误返回

时间:2015-06-18 09:42:10

标签: javascript jquery ajax firefox

我有一个ajax请求:

$.ajax({
        url: webURL,
        type: 'post',
        data: somedata,
        cache: false,
        datatype: "json",
        contentType: "application/json",
        success: successFunc,
        error: function(jqXHR, textStatus, errorThrown)
               {
                   console.log("Status: " + textStatus);
                   console.log("Error: " + errorThrown);
                   alert("Some error!")
               }
    });

服务器上的此请求实际上对数据库执行长时间运行的查询(大约需要十分钟)。

但是,这个请求会在大约3-5分钟内返回,并且会一直显示“#34;某些错误的警告!”#34;。但是在服务器上,数据库查询仍在运行,从未返回!这只发生在Firefox上。它适用于Chrome。 textStatus字段返回"错误"和errorThrown是空白的。

在服务器发送响应之前,任何人都可以帮助我解释为什么这个ajax请求会返回吗?

这种情况仅发生在Firefox上,并且长时间运行的请求需要6-7分钟才能返回。

我有一个相关的问题。我看到Firefox在几分钟后仍在重试ajax请求。所以我的代码检查请求是否已经存在于缓存中。如果是,则缓存只是继续轮询,直到查询结果也在缓存中。问题是,如果Firefox正在重试请求,这将如何影响请求?是否有多个请求在缓存上等待,或者一次只有一个请求并且旧连接一直关闭?

1 个答案:

答案 0 :(得分:0)

试试这个代码......

 $.ajax({
              type: "POST",
              url: "Default.aspx/sayHello",
              contentType: "application/json; charset=utf-8",
              data: "{}",
              dataType: "json",
              success: function(response)
              {
                alert(response.d);
              },
              error: function(response)
              {
                alert(response.status);
              }
          });