IE9 XMLHTTPRequest请求正文不完整,但readyState=4 statuscode=200


IE9 XMLHTTPRequest request body incomplete but readyState=4 statuscode=200

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

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

服务器端几乎没有什么可检查的,这只是echo json_encode($reply); 的问题

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

我会继续调查,但由于我自己无法复制,这可能需要几天时间。

有人能确认这些问题并为我提供解决方案吗

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

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

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