IE 9 - 30第二次Ajax POST请求

时间:2011-10-20 21:32:43

标签: jquery ajax apache internet-explorer-9

在IE 9中,使用以下任一方法向我的服务器发送AJAX请求时

// SproutCore
SC.Request.postUrl(...).send()

// jQuery
$.post(...)

在函数返回之前,我总是看到将近30秒的延迟,即使我可以在WireShark中清楚地看到收到了请求。自从我使用Wireshark已经有一段时间了,所以也许我只是读错了,但我看到以下内容,这让我觉得这可能是一个Apache问题?

Time         Info
-------------------------------------------------------------------
77.716243    [PSH, ACK] Seq=1 Ack=1031 Win=7808 Len=896
107.576027   [FIN, ACK] Seq=897 Ack=1032 Win=7808 Len=0

注意几乎精确的30秒差异。此外,我已确认第一个请求包含来自服务器的正确数据。

这只是IE 9中的一个错误吗?或者我的Apache服务器上的配置错误?

任何想法都会非常赞赏!

1 个答案:

答案 0 :(得分:1)

嗯......看起来这不是问题。显然重新启动我的计算机修复了问题,因此它不是代码级问题。很抱歉把它转移到SO领域。但是,希望在发布问题之前,其他人会看到并重启: - )

更新:我再次遇到错误,但我认为这与服务器有关,所以我打开了question on Server Fault

更新x2:嗯,这不是一个真正的解决方案,但我通过使用以下代码找到了解决方法:

didSend: function(request, response) {
  if (SC.browser.msie && request.get('type') === "POST") {
    setTimeout(function() {
      Core360.Request.getUrl('/test_server').send();
    }, 500);
  }
}

由于某种原因,这会强制关闭先前的连接,显然GET请求会立即返回并且没有待处理,所以它可以正常工作。

我希望将来可以帮助一些可怜的灵魂。