Ajax在IE9中调用随机失败

时间:2012-03-06 15:06:23

标签: jquery ajax post internet-explorer-9

我编写了一个互联网应用程序,用于将用户的每个操作与服务器同步。因此我有很多Ajax请求(尽管不是同时)。

该应用程序在Firefox和Chrome中运行良好,但IE9令我头疼。这些帖子请求在IE9中完全随机失败。因此,问题不能通过明确的动作再现,但是,它经常发生。例如,如果我连续十次执行完全相同的操作,则它可以每次都成功,或者在其中一个请求期间失败。我使用IE Developer工具对网络进行了分析,结果如下:http://screencast.com/t/VLcK5OKWQl

如您所见,帖子请求仍然未决。在此次通话的详细说明中,所有信息均为空白,甚至不是请求标题。

我完全迷失了这个问题。如果有人知道这可能是什么,请与我分享,我会尝试任何事情!

顺便说一句,我正在使用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');

2 个答案:

答案 0 :(得分:1)

我遇到了完全相同的问题,并且能够通过不在请求上发送null作为数据来解决它(仅发送整数等)。

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

那就是说,我无法在其他任何地方重现这一点......所以,它仍然没有任何意义:P

答案 1 :(得分: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");