google-chrome – Chrome加载了一个text / html文件,但显示状态为“failed”且未在屏幕上呈现

谷歌Chrome仍然面临一个奇怪的问题.我有一个从
PHP源代码生成的text / html页面.此页面加载良好,并在任何流行的浏览器上显示,但Chrome.刚刚保存源代码后,Chrome会以正确的方式加载和呈现文件.即使我只是添加或删除了空格字符.接下来,如果我尝试刷新页面,Chrome会显示一个空白页面,并在“开发者工具”面板中显示错误(请参见屏幕截图),指示“失败”状态.但是,如果我检查HTTP响应标头,一切似乎都没问题,包括HTTP状态:200 OK.

HTTP/1.1 200 OK
Date: Mon, 17 Sep 2012 08:37:03 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.3.14
Expires: Mon, 17 Sep 2012 08:52:03 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

Bellow是保存源并获得正确呈现后的HTTP响应头.没有变化(时间相关信息除外)

HTTP/1.1 200 OK
Date: Mon, 17 Sep 2012 08:56:06 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.3.14
Expires: Mon, 17 Sep 2012 09:11:07 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

我还检查了HTTP请求标头,它们在两种情况下都是相同的:

工作案例:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Cookie:PHPSESSID=qn01olb0lkgh3qh7tpmjbdbct1
Host:(hidden here, but correct, looks like subsubdomain.subdomain.domain.tld)
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1

失败案例:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Cookie:PHPSESSID=qn01olb0lkgh3qh7tpmjbdbct1
Host:(also hidden)
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1

我注意到即使页面失败,也会从本地缓存中成功加载或检索其他一些资源(javascript,样式表).我也可以每次成功访问HTML源代码,是否可以呈现页面(HTML代码是预期包含的内容).

我也运行了Wireshark,以便在传输数据或其他东西时看看是否会出现问题,但是这一切似乎也没问题.

我在Google上阅读了有关内容长度的内容,如果HTTP标头中提供的信息与提供的文件的有效大小不同,则会导致Chrome失败.在我看来并不是这样,因为没有提供内容长度.

欢迎任何帮助!谢谢!

最佳答案 对于那些仍然遇到这个问题的人:

    setEnv downgrade-1.0

到你的.htaccess,对我来说它可以作为临时修复.它禁用分块传输.

另一种解决方案是将用户代理设置为IE,显然它也是如此……

实际问题与服务器配置有某种关系,我也看到了分段错误错误.
我遇到此行为的站点在PHP 5.3.27上通过HTTPS运行.

编辑:通过HTTPS或HTTP访问站点无关紧要.

edit2:这个错误的原因是一个非常长的行,将它分成多行解决了问题.

点赞