5

我在 IE9 中遇到 XMLHTTPRequest 的请求正文不完整的问题。

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

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

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

我将继续对此进行调查,但由于我自己无法复制它,这可能需要几天时间。

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

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

4

1 回答 1

1

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

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

于 2012-08-20T13:56:49.440 回答