IE9中的Ajax调用随机失败

3
我写了一个互联网应用程序,可以将用户的每个操作与服务器同步。因此,我有很多Ajax请求(虽然不是同时)。在Firefox和Chrome中应用程序运行良好,但IE9让我头痛。在这些post请求中,IE9会出现完全随机的故障。因此,该问题无法通过清晰的操作重现,但经常发生。例如,如果我连续十次执行完全相同的操作,则可能每次都成功,也可能在其中某个请求失败。我使用IE开发人员工具对网络进行了分析,结果如下:http://screencast.com/t/VLcK5OKWQl
如您所见,post请求仍处于挂起状态。在此调用的详细描述中,所有信息都为空,甚至没有请求标头。
我对这个问题完全迷失了。如果有人知道这可能是什么,请与我分享,我会尝试任何东西!
顺便说一句,我正在使用jQuery(v1.7.1)$ .post调用,如果有任何区别,我还在响应文件中包含了以下标题:
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
header( 'Pragma: no-cache' );
header('Content-type: application/json; charset=utf-8');

你尝试过使用标准的$.ajax并将设置'cache'设为false吗? - trembon
@Simon:我在VPS上运行CentOS。你知道我在哪里可以找到这些日志吗?(我不太懂服务器端) - Bjorn
@Simon:或者使用DirectAdmin? - Bjorn
@trembon:我尝试了你的建议,但不幸的是它并没有解决我的问题。无论如何,感谢你的建议! - Bjorn
可以使用 Fiddler 或类似的工具来分析本地机器发送的请求。 - charlietfl
显示剩余5条评论
2个回答

1

我曾经遇到过完全相同的问题,通过在请求中不发送null数据(只发送整数等)来解决了这个问题。

我还尝试多次运行相同的请求以调试出错原因,在将参数更改为“非null”之前,我得到了随机响应(成功、null值或错误(状态码12031))。 在进行“非null参数”更改后,我已经能够连续运行相同的请求1000多次而没有任何失败。

话虽如此,我无法在其他地方重现这个问题...所以,它仍然毫无意义:P


0

以下的头文件解决了我的问题:

ob_end_clean();
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
header('Expires: 0'); // Proxies.
header("Content-type: application/json; charset=utf-8");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接