【问题标题】:Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING errorChrome net::ERR_INCOMPLETE_CHUNKED_ENCODING 错误
【发布时间】:2015-07-05 19:29:53
【问题描述】:

在过去的两个月里,我在 Chrome 的开发者控制台上收到以下错误:

net::ERR_INCOMPLETE_CHUNKED_ENCODING

症状:

  • 页面未加载。
  • 截断的 CSS 和 JS 文件。
  • 页面挂起。

服务器环境:

  • Apache 2.2.22
  • PHP
  • Ubuntu

这发生在我们内部的 Apache 服务器上。这不会发生在其他任何人身上 - 即我们的用户都没有遇到这个问题 - 我们的开发团队中的其他人也没有。

其他人正在使用完全相同版本的 Chrome 访问完全相同的服务器。我还尝试禁用所有扩展程序并在隐身模式下浏览 - 无效。

我使用了 Firefox,并且发生了完全相同的事情。截断的文件等等。唯一的问题是,Firefox 不会引发任何控制台错误,因此您需要通过 Firebug 检查 HTTP 请求以查看问题。

来自 Apache 的响应标头:

Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:close
Content-Encoding:gzip
Content-Type:text/html; charset=utf-8
Date:Mon, 27 Apr 2015 10:52:52 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Pragma:no-cache
Server:Apache/2.2.22 (Ubuntu)
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-Powered-By:PHP/5.3.10-1ubuntu3.8

在测试时,我可以通过在我的 htaccess 文件中强制使用 HTTP 1.0 来解决这个问题:

SetEnv downgrade-1.0

这解决了这个问题。但是,在 HTTP 1.1 上强制使用 HTTP 1.0 并不是一个合适的解决方案。

更新:因为我是唯一遇到此问题的人,所以我认为我需要花更多时间调查这是否是客户端问题。如果我进入 Chrome 的设置并使用“恢复为默认值”选项,问题会消失大约 10-20 分钟。然后它返回。

【问题讨论】:

  • 您忘记了刹车。这是正确的 -> while($row = mysql_fetch_assoc($result))
  • @PHPMan 没有正确复制和粘贴。现在修好了。我希望这就是原因。
  • 另外,需要知道这段代码生成的 HTML while($row = mysql_fetch_assoc($result)) 可能是空行太多导致被浏览器截断
  • 如果客户端没有收到分块传输的最终 0 长度块,则会引发该错误。在你的位置,我会启动 Wireshark 并捕获 TCP 流量以查看发生了什么。
  • 这可能是由网络问题而不是应用程序问题引起的(尤其是因为您是唯一拥有它的人)。因此,您可能应该首先尝试通过监控流量来排除网络问题是可能的原因,正如@aergistal 建议的那样。

标签: php apache google-chrome chunked-encoding chunked


【解决方案1】:

好的。我已经对此进行了三重测试,并且我100% 确定这是由我的防病毒软件 (ESET NOD32 ANTIVIRUS 5) 引起的。

每当我禁用实时保护时,问题就会消失。今天,我将实时保护关闭了 6-7 小时,但问题从未发生过。

几分钟前,我重新打开它,只是问题在一分钟内浮出水面。

在过去的 24 小时内,我再次打开和关闭实时保护,以确保安全。每次 - 结果都是一样的。

更新:我遇到了另一位开发人员,他的卡巴斯基反病毒软件的实时保护存在完全相同的问题。他禁用了它,问题就消失了。即这个问题似乎并不局限于 ESET。

【讨论】:

  • 当您使用防病毒软件并发送内容长度标头时,它是否有效?如果问题是 Eset + 从任何 ip 访问您的页面,修复它可能是个好主意。提供内容长度标头并没有什么坏处,每个请求可能花费 1 毫秒。
  • 从长期的经验来看,杀毒软件弊大于利。
  • 根据我的答案的更新 - 我能够复制此错误。它发生在输出缓冲发生时,PHP 抛出了一个致命错误,导致输出损坏。
  • AVAST 也有同样的问题......它变得如此糟糕,我什至不能再访问一些网站了。我禁用了网络扫描,一切都恢复正常工作......
  • 是的,Avast 也是我的问题。特别是 Web Shield 下的 Script Scanning 选项。
【解决方案2】:

该错误试图说明在发送页面时 Chrome 已被切断。您的问题是试图找出原因。

显然,这可能是影响多个 Chrome 版本的已知问题。据我所知,这是一个问题,这些版本对正在发送的块的内容长度和该块的表达大小非常敏感(我可能离那个很远)。简而言之,一个稍微不完善的标题问题。

另一方面,可能是服务器没有发送终端长度为 0 的块。这可能可以用ob_flush(); 修复。 Chrome(或连接或其他东西)也可能很慢。所以当连接关闭时,页面还没有加载。我不知道为什么会发生这种情况。

这是偏执的程序员的答案:

<?php
    // ... your code
    flush();
    ob_flush();
    sleep(2);
    exit(0);
?>

在您的情况下,可能是脚本超时的情况。我不确定为什么它应该只影响你,但它可能归结为一堆竞争条件?这是一个完全的猜测。您应该能够通过延长脚本执行时间来测试这一点。

<?php
    // ... your while code
    set_time_limit(30);
    // ... more while code
?>

它也可能像您需要更新 Chrome 安装一样简单(因为这个问题是 Chrome 特有的)。

更新:当 PHP(在同一本地主机上)为 output buffering 时引发致命错误时,我能够(终于)复制此错误。我想输出被严重破坏而没有多大用处(标题但很少或没有内容)。

具体来说,我不小心让我的代码递归地调用自己,直到 PHP 正确地放弃了。因此,服务器没有发送终端长度为 0 的块——这是我之前发现的问题。

【讨论】:

  • 我不知道,但这对我来说真的很有用:set_time_limit(30);
  • 增加内存限制对我的情况有所帮助:ini_set('memory_limit', '500M');
  • 问题实际上是当您关闭连接而不刷新响应时。这会导致 chrome 无法接收流的最后一个字节。在 vertx 中,做 response.end() 而不是 response.close()
【解决方案3】:

我遇到了这个问题。在尝试了有关此问题的大多数其他答案后对其进行了跟踪。这是由/var/lib/nginx 的所有者和权限引起的,更具体地说是/var/lib/nginx/tmp 目录不正确。

fast-cgi 使用 tmp 目录在响应生成时缓存响应,但前提是它们大于特定大小。所以这个问题是间歇性的,只有在生成的响应很大时才会发生。

检查nginx &lt;host_name&gt;.error_log,看看您是否有权限问题。

要修复,请确保/var/lib/nginx 的所有者和组以及所有子目录都是 nginx。

我还看到当存储设备上的空间太低而无法创建临时文件时,会间歇性地发生这种情况。这种情况下的解决方案是释放设备上的一些空间。

【讨论】:

  • 这里也一样,/var/lib/nginx 上的chown 为我修复了它?
  • 这里也一样,但是我的 homebrew 安装创建了一个 /usr/local/var/run/nginx/fastcgi_temp 目录,我必须授予读/写权限。
  • 我有类似的问题,但在我的情况下,权限问题与其他目录有关:/etc/nginx/proxy_temp/。修复此问题后,至少目前,问题消失了。
  • 就我而言,问题似乎与 SSL 证书过期有关。
  • 在我的例子中,一个服务生成了巨大的日志文件,导致我的反向代理服务器中没有空间。我登录这个反向服务器后解决了它。希望我能很快看到这个答案。
【解决方案4】:

以下应该为每个客户修复它。

//Gather output (if it is not already in a variable, use ob_start() and ob_get_clean() )    

// Before sending output:
header('Content-length: ' . strlen($output));

但在我的情况下,以下是一个更好的选择并且也修复了它:

.htaccess:

php_value opcache.enable 0

【讨论】:

  • 这确实为我解决了问题。我正在通过 ajax 在 div 上加载 PHP 生成的内容,当文件超过 2MB 时,Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING 错误从 3 次开始出现 2 次。添加 Content-length 解决了我的问题。谢谢!
  • 这个解决方案对我们有用,有一个 Angular 正在读取 json 的站点......在我们的例子中,它是 .htaccess 中的 php_flag opcache.enable Off。我们知道这与防病毒无关,因为即使在 Mac 上我们也遇到了这个问题。谢谢!!
  • 太好了 :) 网络服务器是否运行 PHP 5.6?我想升级到 PHP 7 也可以解决这个问题。至少这是我现在的经验!
  • 这个 ^ ^ ^ 一千倍这个!我在我们正在开发的 Drupal 8 站点上遇到了这个问题。一旦我将它设置为聚合 CSS 和 JS,它就开始无法在 Chrome 中加载管理页面。在 Firefox 中没有问题。
  • 如何在部署在 tomcat 服务器上的基于 jsp-servlet 的应用程序中做到这一点
【解决方案5】:

天哪,我在 5 分钟前解决了同样的问题。我花了几个小时寻找解决方案。乍一看,禁用杀毒软件解决了 Windows 上的问题。但后来我注意到其他没有防病毒软件的 linux pc 上的问题。 nginx 日志中没有错误。我的uwsgi 显示了一些关于“Broken pipe”的信息,但不是所有请求。 知道什么?设备上没有剩余空间,我在数据库日志中重新启动服务器时发现,df 批准了这一点。解决这个问题的唯一解释是它阻止了浏览器缓存(它应该检查每个请求),但是有一些奇怪行为的浏览器可以简单地忽略错误响应并显示缓存的响应。

【讨论】:

  • 过去 24 小时一直在摸索这个问题,你真的救了我。这是因为一个完整的根分区,它在我的 django 安装上,pgbouncer 日志填满了根分区。谢谢大佬
  • 救了我!我的根分区已满,nginx 也受影响-
【解决方案6】:

在我的情况下,我遇到了/usr/local/var/run/nginx/fastcgi_temp/3/07/0000000073" failed (13: Permission denied),这可能导致 Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING 错误。

我不得不删除 /usr/local/var/run/nginx/ 并让 nginx 重新创建它。

$ sudo rm -rf /usr/local/var/run/nginx/
$ sudo nginx -s stop
$ sudo mkdir /usr/local/var/run/nginx/
$ sudo chown nobody:nobody /usr/local/var/run/nginx/
$ sudo nginx

【讨论】:

  • 在 Mac 上,我最终卸载并重新安装了 nginxbrew,然后停止和启动 nginx 并修复了它!感谢发帖。
【解决方案7】:

这是已知的 Chrome 问题。根据 Chrome 和 Chromium 错误跟踪器的说法,没有通用的解决方案。此问题与服务器类型和版本无关,在 Chrome 中是正确的。

Content-Encoding 标头设置为identity 为我解决了这个问题。

来自developer.mozilla.org

身份 |表示恒等函数(即不压缩,也不 修改)。

因此,我可以建议,在某些情况下 Chrome 无法正确执行 gzip 压缩。

【讨论】:

    【解决方案8】:

    最简单的解决方案是在 nginx.conf 中将设置的代理位置的 proxy_read_timeout 增加到更高的值(比如 120 秒)。

    location / {
    ....
    proxy_read_timeout 120s
    ....
    }
    

    我在这里找到了这个解决方案 https://rijulaggarwal.wordpress.com/2018/01/10/atmosphere-long-polling-on-nginx-chunked-encoding-error/

    【讨论】:

    • 请提供更多关于何时会发生这种情况的上下文,而不是仅仅从另一个站点复制。
    【解决方案9】:

    我只是盯着有一个类似的问题。并注意到只有当页面包含序数值大于 255(即多字节)的 UTF-8 字符时才会发生这种情况。

    最终的问题是如何计算 Content-Length 标头。底层后端是计算字符长度,而不是字节长度。关闭内容长度标头暂时解决了问题,直到我可以修复后端模板系统。

    【讨论】:

      【解决方案10】:

      当我遇到此错误时(从 javascript 进行 AJAX 调用时);原因是控制器的响应错误;它返回的 JSON 格式无效。

      【讨论】:

        【解决方案11】:

        这里的问题是我的 Avast AV。 一旦我禁用它,问题就消失了。

        但是,我真的很想了解这种行为的原因。

        【讨论】:

          【解决方案12】:

          如果有人可能对 MOODLE 有同样的问题,我只是想与您分享我的经验。

          我们的 moodle 平台突然变得非常缓慢,仪表板的加载时间大约是平时的 2-3 倍(最多 6 秒),并且有时有些页面根本没有加载(不是 404 错误,而是空白页)。在开发者工具控制台中可以看到以下错误:net::ERR_INCOMPLETE_CHUNKED_ENCODING.

          搜索此错误,看起来 Chrome 是问题所在,但我们遇到了各种浏览器的问题。经过数小时的研究并比较了我最终发现问题前几天的数据库,有人打开了事件监控。但是,在“配置更改”日志中,此更改不可见!关闭事件监控,终于解决了问题——我们没有为事件监控定义规则。

          我们使用 MariaDB 和 PHP 5.4 运行 Moodle 3.1.2+。

          【讨论】:

            【解决方案13】:

            这发生在相隔数年的两个不同客户的服务器上,使用当时部署在数百台其他服务器上的相同代码没有问题。

            对于这些客户端,它主要发生在具有流式 HTML 的 PHP 脚本上 - 即“连接:关闭”页面,其中在输出可用时将输出发送到浏览器。

            事实证明,PHP 进程和 Web 服务器之间的连接在脚本完成之前和任何超时之前就提前断开了。

            问题在于主 php.ini 文件中的 opcache.fast_shutdown = 1。默认情况下禁用此指令,但似乎一些服务器管理员认为这里有性能提升。在我所有的测试中,我从未注意到使用此设置的积极差异。根据我的经验,它会导致一些脚本实际上执行得更慢,并且有时会在脚本仍在执行时进入关闭状态,甚至在 Web 服务器仍在从缓冲区读取时甚至在执行结束时进入关闭状态。有一个 2013 年的旧错误报告,截至 2017 年 2 月尚未解决,可能与此相关:https://github.com/zendtech/ZendOptimizerPlus/issues/146

            我看到由于这个原因出现以下错误 ERR_INCOMPLETE_CHUNKED_ENCODING ERR_SPDY_PROTOCOL_ERROR 有时会记录相关的段错误;有时不会。

            如果您遇到任何一种情况,请检查您的 phpinfo,并确保 opcache.fast_shutdown 已禁用。

            【讨论】:

              【解决方案14】:

              对我来说,这是由于硬盘驱动器上的可用空间不足造成的。

              【讨论】:

                【解决方案15】:

                如果您可以在您的本地主机中获得正确的响应并收到这种错误类型的错误,并且您使用的是nginx

                1. 转到服务器并使用以下命令打开 nginx.conf:

                  nano etc/nginx/nginx.conf

                2. 在 http 块中添加以下行:

                  proxy_buffering 关闭;

                3. 保存并退出文件

                这解决了我的问题

                【讨论】:

                • 谢谢!!这有助于我尝试访问本地网络中另一台计算机上的服务器。
                【解决方案16】:

                很抱歉,我无法为您提供准确的答案。但我也确实遇到了这个问题,并且至少在我的情况下,找到了解决它的方法。所以也许它会为其他更了解 PHP 的人提供一些线索。

                场景是,我有一个数组传递给一个函数。这个数组的内容被用来生成一个 HTML 字符串,通过将其全部放在一个稍后打印的全局变量中,将其发送回浏览器。 (这个函数实际上并没有返回任何东西。我知道,草率,但这不是重点。)在这个数组中,除其他外,有几个元素通过引用携带在这个函数之外定义的嵌套关联数组.通过消除过程,我发现在此函数中对该数组内的任何元素进行操作,无论是否引用,包括尝试取消设置这些引用的元素,都会导致 Chrome 抛出 net::ERR_INCOMPLETE_CHUNKED_ENCODING 错误并且不显示任何内容。尽管全局变量中的 HTML 字符串正是它应该的样子。

                只有通过重新调整脚本以不首先应用对数组元素的引用,事情才能重新开始正常工作。我怀疑这实际上是一个 Php 错误,与引用元素的存在有关,抛出内容长度标头,但我真的对此知之甚少,无法确定。

                【讨论】:

                • 我对这个错误消息有类似的经历,但是我发现我的代码中有一个错误可能应该触发内存不足的错误,尽管我可能没有使用任何额外的递归中的内存。无论如何,我认为 PHP 在没有刷新输出缓冲区的情况下安静地死去,也没有产生任何 PHP 错误。
                【解决方案17】:

                我在使用 Chrome 和 Firefox 的网站时遇到了这个问题。如果我关闭 Avast Web Shield,它就会消失。通过将一些 html5 样板 htaccess 添加到我的 htaccess 文件中,我似乎设法让它与运行的 Web Shield 一起工作:

                # ------------------------------------------------------------------------------
                # | Expires headers (for better cache control)                                 |
                # ------------------------------------------------------------------------------
                
                # The following expires headers are set pretty far in the future. If you don't
                # control versioning with filename-based cache busting, consider lowering the
                # cache time for resources like CSS and JS to something like 1 week.
                
                <IfModule mod_expires.c>
                
                    ExpiresActive on
                    ExpiresDefault                                      "access plus 1 month"
                
                  # CSS
                    ExpiresByType text/css                              "access plus 1 week"
                
                  # Data interchange
                    ExpiresByType application/json                      "access plus 0 seconds"
                    ExpiresByType application/xml                       "access plus 0 seconds"
                    ExpiresByType text/xml                              "access plus 0 seconds"
                
                  # Favicon (cannot be renamed!)
                    ExpiresByType image/x-icon                          "access plus 1 week"
                
                  # HTML components (HTCs)
                    ExpiresByType text/x-component                      "access plus 1 month"
                
                  # HTML
                    ExpiresByType text/html                             "access plus 0 seconds"
                
                  # JavaScript
                    ExpiresByType application/javascript                "access plus 1 week"
                
                  # Manifest files
                    ExpiresByType application/x-web-app-manifest+json   "access plus 0 seconds"
                    ExpiresByType text/cache-manifest                   "access plus 0 seconds"
                
                  # Media
                    ExpiresByType audio/ogg                             "access plus 1 month"
                    ExpiresByType image/gif                             "access plus 1 month"
                    ExpiresByType image/jpeg                            "access plus 1 month"
                    ExpiresByType image/png                             "access plus 1 month"
                    ExpiresByType video/mp4                             "access plus 1 month"
                    ExpiresByType video/ogg                             "access plus 1 month"
                    ExpiresByType video/webm                            "access plus 1 month"
                
                  # Web feeds
                    ExpiresByType application/atom+xml                  "access plus 1 hour"
                    ExpiresByType application/rss+xml                   "access plus 1 hour"
                
                  # Web fonts
                    ExpiresByType application/font-woff                 "access plus 1 month"
                    ExpiresByType application/vnd.ms-fontobject         "access plus 1 month"
                    ExpiresByType application/x-font-ttf                "access plus 1 month"
                    ExpiresByType font/opentype                         "access plus 1 month"
                    ExpiresByType image/svg+xml                         "access plus 1 month"
                
                </IfModule>
                
                # ------------------------------------------------------------------------------
                # | Compression                                                                |
                # ------------------------------------------------------------------------------
                
                <IfModule mod_deflate.c>
                
                    # Force compression for mangled headers.
                    # http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping
                    <IfModule mod_setenvif.c>
                        <IfModule mod_headers.c>
                            SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
                            RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
                        </IfModule>
                    </IfModule>
                
                    # Compress all output labeled with one of the following MIME-types
                    # (for Apache versions below 2.3.7, you don't need to enable `mod_filter`
                    #  and can remove the `<IfModule mod_filter.c>` and `</IfModule>` lines
                    #  as `AddOutputFilterByType` is still in the core directives).
                    <IfModule mod_filter.c>
                        AddOutputFilterByType DEFLATE application/atom+xml \
                                                      application/javascript \
                                                      application/json \
                                                      application/rss+xml \
                                                      application/vnd.ms-fontobject \
                                                      application/x-font-ttf \
                                                      application/x-web-app-manifest+json \
                                                      application/xhtml+xml \
                                                      application/xml \
                                                      font/opentype \
                                                      image/svg+xml \
                                                      image/x-icon \
                                                      text/css \
                                                      text/html \
                                                      text/plain \
                                                      text/x-component \
                                                      text/xml
                    </IfModule>
                
                </IfModule>
                
                # ------------------------------------------------------------------------------
                # | Persistent connections                                                     |
                # ------------------------------------------------------------------------------
                
                # Allow multiple requests to be sent over the same TCP connection:
                # http://httpd.apache.org/docs/current/en/mod/core.html#keepalive.
                
                # Enable if you serve a lot of static content but, be aware of the
                # possible disadvantages!
                
                 <IfModule mod_headers.c>
                    Header set Connection Keep-Alive
                 </IfModule>
                

                【讨论】:

                  【解决方案18】:

                  我的解决方法是:

                  <?php  ob_start(); ?>
                  <!DOCTYPE html>
                  <html lang="de">
                  .....
                  ....//your whole code
                  ....
                  </html>
                  <?php
                          ob_clean();
                  ob_end_flush();
                  
                  ob_flush();
                  
                  ?>
                  

                  希望这对将来的某人有所帮助,就我而言,这是一个卡巴斯基问题,但上面的修复效果很好:)

                  【讨论】:

                    【解决方案19】:

                    在我的情况下,它发生在 web api 返回有效负载的 json 序列化期间 - 我在我的实体框架模型中有一个“循环”引用,我返回一个简单的一对多对象图,但孩子有一个引用回父级,显然 json 序列化程序不喜欢。删除引用父级的子级的属性就可以了。

                    希望这对可能遇到类似问题的人有所帮助。

                    【讨论】:

                      【解决方案20】:

                      检查 nginx 文件夹权限并为其设置 appache 权限:

                      chown -R www-data:www-data /var/lib/nginx
                      

                      【讨论】:

                        【解决方案21】:

                        我收到了net::ERR_INCOMPLETE_CHUNKED_ENCODING,在仔细检查服务器错误日志后,我发现这是由于 PHP 脚本执行超时造成的。

                        在 PHP 脚本之上添加这一行为我解决了这个问题:

                        ini_set('max_execution_time', 300); //300 seconds = 5 minutes
                        

                        参考:Fatal error: Maximum execution time of 30 seconds exceeded

                        【讨论】:

                          【解决方案22】:

                          这完全出于不同的原因而发生在我身上。 净::ERR_INCOMPLETE_CHUNKED_ENCODING 200 当我检查页面并转到 newtork 选项卡时,我看到 vendor.js 页面无法加载。经过检查,js文件的大小似乎很大~6.5 mb。那是我意识到我需要压缩js的时候。我检查了我是否使用ng build 命令来构建。相反,当我使用ng build --prod --aot --vendor-chunk --common-chunk --delete-output-path --buildOptimizer 时,它对我有用。请参阅https://github.com/angular/angular-cli/issues/9016

                          【讨论】:

                            【解决方案23】:

                            嗯。不久前我也遇到了这个问题。最后我得到了真正解决这个问题的解决方案。

                            我的问题症状也是页面未加载,发现 json 数据被随机截断。

                            以下是我总结的解决方案,可以帮助解决这个问题

                            1.Kill the anti-virus software process
                            2.Close chrome's Prerendering Instant pages feature
                            3.Try to close all the apps in your browser
                            4.Try to define your Content-Length header
                              <?php
                                 header('Content-length: ' . strlen($output));
                              ?>
                            5.Check your nginx fastcgi buffer is right 
                            6.Check your nginx gzip is open
                            

                            【讨论】:

                              【解决方案24】:

                              如果有任何不存在的循环或项目,那么您将面临这个问题。

                              在 Chrome 上运行应用时,页面为空白且无响应。

                              场景开始:

                              开发环境:MAC、STS 3.7.3、tc Pivotal Server 3.1、Spring MVC Web、

                              在 ${myObj.getfName()} 中

                              场景结束:

                              问题原因:getfName() 函数未在 myObj 上定义。

                              希望对你有所帮助。

                              【讨论】:

                                【解决方案25】:

                                我的猜测是服务器没有正确处理分块传输编码。它需要用一个终端块来终端一个分块文件,以指示整个文件已被传输。所以下面的代码可能工作:

                                echo "\n";
                                flush();
                                ob_flush();
                                exit(0);
                                

                                【讨论】:

                                  【解决方案26】:

                                  在我的情况下,服务器上 mysqlnd_ms php 扩展的配置被破坏。有趣的是,它在处理持续时间短的请求时运行良好。服务器错误日志中有警告,因此我们已快速修复它。

                                  【讨论】:

                                    【解决方案27】:

                                    这似乎是一个具有多种原因和解决方案的常见问题,因此我将在这里为任何可能需要它的人提供答案。

                                    我在 Chrome、osx、php70、httpd24 组合上得到了net::ERR_INCOMPLETE_CHUNKED_ENCODING,但相同的代码在生产服务器上运行良好。

                                    我最初跟踪了常规日志,但没有真正出现。一个快速的ls -later 显示system.log/var/log 中最新触及的文件,并且拖尾给了我

                                    Saved crash report for httpd[99969] version 2.4.16 (805) 
                                    to /Library/Logs/DiagnosticReports/httpd.crash
                                    

                                    包含在:

                                    Process:               httpd [99974]
                                    Path:                  /usr/sbin/httpd
                                    Identifier:            httpd
                                    Version:               2.4.16 (805)
                                    Code Type:             X86-64 (Native)
                                    Parent Process:        httpd [99245]
                                    Responsible:           httpd [99974]
                                    User ID:               70
                                    
                                    PlugIn Path:             /usr/local/opt/php70-mongodb/mongodb.so
                                    PlugIn Identifier:       mongodb.so
                                    

                                    一个brew uninstall php70-mongodb 和一个httpd -k restart 之后,一切都很顺利。

                                    【讨论】:

                                      【解决方案28】:

                                      就我而言,这是 html 的问题。 json 响应中有 '\n' 导致问题。所以我删除了它。

                                      【讨论】:

                                        【解决方案29】:

                                        很高兴看到这个问题有多少不同的原因!

                                        很多人说这是 Chrome 的问题,所以我尝试了 Safari,但仍然有问题。然后尝试了此线程中的所有解决方案,包括关闭我的 AVG 实时保护,但没有运气。

                                        对我来说,问题在于我的 .htaccess 文件。它只包含FallbackResource index.php,但是当我将其重命名为htaccess.txt 时,我的问题得到了解决。

                                        【讨论】:

                                        • 什么...?我也有同样的东西……但是如果它被重命名为htaccess.txt,它不应该不再起作用吗?
                                        • 没错。一个更好的问题可能是,为什么 index.php 处理错误?为什么会导致这种情况?
                                        【解决方案30】:

                                        嗯,我只是偶然发现了一个类似的问题,但背后的原因不同......

                                        我在一个带有 Laravel Mix 的普通 PHP 项目中使用 Laravel Valet。当我在 Chrome 中打开该网站时,它抛出了 net::ERR_INCOMPLETE_CHUNKED_ENCODING 错误。 (如果我在 HTTPS 协议上加载了站点,则错误更改为 net::ERR_SPDY_PROTOCOL_ERROR。)

                                        我检查了php.iniopcache 没有启用。我发现在我的情况下,问题与资产文件的版本控制有关——出于某种原因,它似乎不像资产 URL 中的查询字符串(好吧,奇怪的是,只有一个?)。

                                        我已经为本地环境删除了mix.version(),并且该站点在我的 Chrome 中的 HTTP 和 HTTPS 协议都可以正常加载。

                                        【讨论】:

                                          猜你喜欢
                                          • 2017-11-20
                                          • 2014-05-01
                                          • 1970-01-01
                                          • 2014-04-08
                                          • 1970-01-01
                                          • 2017-05-25
                                          • 1970-01-01
                                          • 1970-01-01
                                          相关资源
                                          最近更新 更多