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

标签 php javascript json xmlhttprequest

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

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

服务器端几乎不需要检查,这只是 echo json_encode($reply);

的问题

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

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

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

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

最佳答案

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

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

关于php - IE9 XMLHTTPRequest 请求体不完整但 readyState=4 statuscode=200,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12038798/

相关文章:

javascript - Ratchet WebSocket(失败 : WebSocket opening handshake timed out)

php - fatal error : require(): Failed opening required 'C:\wamp\www\sep24\e/src/functions.php' (include_path ='.;C:\php\pear' )

php - HTML/PHP 表单不向 MySQL 数据库发送数据

javascript - 获取一周中的所有天数

javascript - 如何在 Express 中访问 res.render 中的数据

java - 如何使用 jackson 将 java 对象序列化为 xml 属性?

javascript - 我正在使用 jQuery 发出多个 JSONP 数据请求,如何确定哪个请求对应哪个结果?

php - 显示带短划线的 URL slug 时出现问题

php - Amazon Linux - 以 Apache 用户身份运行 Composer?

javascript - 使用 angularjs 更改背景和字体颜色