Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php IE9 XMLHTTPRequest请求正文不完整,但readyState=4 statuscode=200_Php_Javascript_Json_Xmlhttprequest - Fatal编程技术网

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

Php IE9 XMLHTTPRequest请求正文不完整,但readyState=4 statuscode=200,php,javascript,json,xmlhttprequest,Php,Javascript,Json,Xmlhttprequest,我在IE9中遇到了一个问题,XMLHTTPRequest的请求体不完整 处理XMLHTTPRequest的代码等待readyState=4,然后检查statuscode=200。然后,它将继续执行JSON.parse,但由于请求正文不完整,因此操作失败。当我检查请求体时,我可以清楚地看到它在字符串的某个点被切断,就像在属性的中间一样。 服务器端几乎没有什么需要检查的,只是echo-json\u-encode($reply)的问题 我知道AJAX错误可能来自很多方面,比如:通过急切的防火墙,但这会

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

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

服务器端几乎没有什么需要检查的,只是
echo-json\u-encode($reply)的问题

我知道AJAX错误可能来自很多方面,比如:通过急切的防火墙,但这会伴随着一个适当的状态,比如(比如
403
)。在本例中,XMLHTTPRequest响应似乎认为一切正常,因此我不知道如何检测它。我是否可以检查其他属性,或者IE9是否可能切断长响应体

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

有人能确认这些问题并给我指出解决方案吗?


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

听起来您的HTTP响应头包含一个
内容长度
头,声称JSON正文比实际长度短


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

是否缓存了错误的请求?所有请求都是
POST
请求,因此缓存不是问题。请求是否需要很长时间才能返回?使用像这样的工具是否会对请求有更多的了解?我无法重现这些情况,我看到它们出现在我的自动错误报告中。如果我可以复制它们,那就容易多了:DI已经验证了有时会发生相反的情况,内容长度比内容长度头短。IE是懒惰的,我想:D。我的解决方案是强制服务器发送一个内容长度头。如果JSON解析失败,我会将字符串的长度与Content length头值进行比较,并抛出“transmission”错误。