Jquery Ajax请求在某些浏览器上永远不会返回

Jquery Ajax请求在某些浏览器上永远不会返回,jquery,ajax,Jquery,Ajax,我已经调试了一个ajax问题一周了,不知道如何修复它。我使用jquery进行ajax调用,如下所示: .... in head tag.... $.ajaxSetup({ cache: false }); ....on button click in the code... jqxhr = $.ajax({ url: 'searching.html', data: 'showDetails=' + showProgressDetails, dataType

我已经调试了一个ajax问题一周了,不知道如何修复它。我使用jquery进行ajax调用,如下所示:

.... in head tag....
$.ajaxSetup({
cache: false
});

 ....on button click in the code...
jqxhr = $.ajax({
      url: 'searching.html',
      data: 'showDetails=' + showProgressDetails,
      dataType:'text',
      success: handleRefreshComplete,
      error:handleSearchError,
      complete:handleCompleteEvent
    })    
    .done(function() { alert("done"); })
    .fail(function() { alert("error"); })
    .always(function() { alert("always"); });
ajax调用大约需要5分钟才能完成。当我在Chrome中运行这段代码时,它可以工作,但所有其他浏览器都只是坐在那里,永远不会完成。不会抛出任何错误,也不会调用任何事件处理程序(例如错误、成功)

我使用WireShark查看了网络跟踪,我发现当在Chrome中进行ajax调用时,会发送TCP保持活动请求,如下所示:

...[TCP Keep-Alive] 64428 > http [ACK] Seq=3599 Ack=135557 Win=40018 Len=1
...[TCP Keep-Alive ACK] http > 64428 [ACK] Seq=135557 Ack=3600 Win=248 Len=0 SLE=3599 SRE=3600
对于所有其他浏览器,都没有发送和接收这些内容。我试过设置超时,但它们似乎对代码没有任何影响


这个问题实际上比我最初想象的要复杂。当我们的网络上有多个ajax请求时,问题似乎就发生了。当这种情况发生时,Chrome工作得很好,但其他浏览器只是无限期地等待。在服务器端,所有调用都返回到客户端

如果您对如何修复或进一步调试此问题有任何想法或建议,我们将不胜感激

谢谢


Joe C

尝试在通话中添加一个
超时时间

在这里,我添加了一个5分钟(5*60*1000)的
超时


根据实际通话时间,您可能希望将通话时间提高一个档次。

尝试在通话中添加一个
超时时间

在这里,我添加了一个5分钟(5*60*1000)的
超时


根据实际需要的时间,您可能希望将它提高一个级别。

我尝试在ajaxSetup和ajax调用中使用超时,但没有帮助。我还检查以确保我没有同时发出太多ajax请求,这是唯一的请求。问题实际上比我最初想象的要复杂。当我们的网络上有多个ajax请求时,问题似乎就发生了。当这种情况发生时,Chrome工作得很好,但其他浏览器只是无限期地等待。在服务器端,所有调用都返回到客户端。我尝试在ajaxSetup和ajax调用中使用超时,但没有帮助。我还检查以确保我没有同时发出太多ajax请求,这是唯一的请求。问题实际上比我最初想象的要复杂。当我们的网络上有多个ajax请求时,问题似乎就发生了。当这种情况发生时,Chrome工作得很好,但其他浏览器只是无限期地等待。在服务器端,所有调用都返回到客户端。
$.ajaxSetup({
   cache: false,
   timeout: 3000000
});