IE9 XMLHTTPRequest请求主体不完整但readyState = 4 statuscode = 200

时间:2012-08-20 13:38:42

标签: php javascript json xmlhttprequest

我在IE9中遇到一个问题,其中XMLHTTPRequest的请求主体不完整

处理XMLHTTPRequest的代码等待readyState = 4,然后检查statuscode = 200。然后它将继续JSON.parse但由于请求正文不完整而失败。当我检查请求体时,我可以清楚地看到它在字符串中的某个点被截断,就像在属性的中间一样。

服务器端的检查很少,只需要echo json_encode($reply);

我知道AJAX错误可能来自各种各样的来源,例如:过度急切的防火墙,但这会伴随着类似的状态(如403)。在这种情况下,XMLHTTPRequest响应似乎认为一切都很好,所以我不知道如何检测它。我可以检查另一个属性,或者IE9是否可以切断长响应体?

我将继续对此进行调查,但由于我不能自己重现,这可能需要几天时间。

任何人都可以确认这些问题并指出我的解决方案吗?

注意:这似乎只发生在IE9中,我想这是因为旧版本不使用XMLHTTPRequest而是使用ActiveXObject。这在Chrome或Firefox中不会发生,至少:我还没有看到它。

1 个答案:

答案 0 :(得分:1)

听起来您的HTTP响应标头包含一个Content-Length标头,声称JSON主体比实际更短。

检查是否是这种情况,找出它的添加位置并更正或删除它。