Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING 错误
Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING error
在过去的两个月里,我在 Chrome 的开发者控制台上收到以下错误:
net::ERR_INCOMPLETE_CHUNKED_ENCODING
症状:
- 页面未加载。
- 截断 CSS 和 JS 文件。
- 页面挂起。
服务器环境:
- 阿帕奇 2.2.22
- PHP
- Ubuntu
我在 in-house Apache 服务器上遇到了这种情况。其他任何人都不会发生这种情况 - 即我们的 None 用户遇到此问题 - 我们开发团队中的任何其他人也不会遇到此问题。
其他人正在使用完全相同的 Chrome 版本访问完全相同的服务器。我也试过禁用所有扩展程序并以隐身模式浏览 - 没有效果。
我使用过 Firefox 并且发生了完全相同的事情。截断的文件和诸如此类的东西。唯一的问题是,Firefox 不会引发任何控制台错误,因此您需要通过 Firebug 检查 HTTP 请求以查看问题所在。
来自 Apache 的响应 Headers:
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.0 而不是 HTTP 1.1 并不是一个合适的解决方案。
更新:因为我是唯一遇到此问题的人,所以我认为我需要花更多时间调查它是否是客户端问题。如果我进入 Chrome 的设置并使用 "Restore to Default" 选项,问题将消失 大约 10- 20分钟。那么它returns.
错误是说 Chrome 在发送页面时被切断了。您的问题是试图找出原因。
显然,这可能是影响 Chrome 几个版本的已知问题。据我所知,这是一个问题,这些版本对发送的块的内容长度和该块的表达大小非常敏感(我可能离那个很远)。总之,有点不完美headers的问题。
另一方面,可能是服务器没有发送终端0-length chunk。这可能可以用 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 特有的)。
- https://code.google.com/p/chromium/issues/detail?id=461213
- IIS & Chrome: failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING
- https://wordpress.org/support/topic/interface-issue-err_incomplete_chunked_encoding
更新:当PHP(在同一本地主机上)是[=16时抛出致命错误时,我能够(最后)复制此错误=].我想输出被严重破坏以至于没有多大用处(headers 但内容很少或没有)。
具体来说,我不小心让我的代码递归调用自身,直到 PHP,正确地,放弃了。因此,服务器没有向终端发送长度为 0 的块 - 这是我之前发现的问题。
以下应该为每个客户修复它。
//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
好的。我对此进行了三次测试,我 100% 确定 它是由我的防病毒软件 (ESET NOD32 ANTIVIRUS 5) 引起的。
每当我禁用实时保护时,问题就会消失。今天,我将实时保护关闭了 6-7 个小时,但问题从未发生。
几分钟前,我将其重新打开,但问题在一分钟内就出现了。
在过去的 24 小时内,为了保险起见,我再次打开和关闭了实时保护。每次 - 结果都是一样的。
更新:我遇到了另一位开发人员,他在卡巴斯基反病毒软件的实时保护方面遇到了完全相同的问题。他禁用了它,问题就消失了。也就是说,这个问题似乎并不仅限于 ESET。
这里的问题是我的 Avast AV。
一旦我禁用它,问题就消失了。
但是,我真的很想了解这种行为的原因。
我刚开始遇到类似的问题。并注意到只有当页面包含序数值大于 255(即多字节)的 UTF-8 字符时才会发生这种情况。
最终的问题是 Content-Length header 的计算方式。底层后端正在计算字符长度,而不是字节长度。关闭 content-length headers 暂时解决了问题,直到我可以修复后端模板系统。
很抱歉,我没有准确的答案给你。但是我也确实遇到了这个问题,并且至少就我而言,找到了解决方法。所以也许它会为其他更了解 Php 的人提供一些线索。
场景是,我将一个数组传递给了一个函数。该数组的内容用于生成要发送回浏览器的 HTML 字符串,方法是将其全部放入稍后打印的全局变量中。 (这个函数实际上没有返回任何东西。草率,我知道,但这不是重点。)在这个数组中,除其他外,有几个元素通过引用携带嵌套关联数组,这些数组是在这个函数之外定义的.通过 process-of-elimination,我发现在这个函数中对该数组内的任何元素进行操作,无论是否被引用,包括尝试取消设置那些被引用的元素,都会导致 Chrome 抛出 net::ERR_INCOMPLETE_CHUNKED_ENCODING 错误并且显示无内容。尽管全局变量中的 HTML 字符串正是它应该的样子。
只有 re-tooling 脚本首先不应用对数组元素的引用,事情才重新开始正常工作。我怀疑这实际上是一个 Php 错误,与引用元素的存在有关 content-length headers,但我真的不太了解这个当然。
嗯。不久前我也遇到了这个问题。最后我得到了真正解决这个问题的解决方案。
我的问题症状也是页面未加载,发现 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
我在 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>
天哪,我在 5 分钟前解决了同样的问题。我花了几个小时来寻找解决方案。乍一看,禁用防病毒软件解决了 Windows 上的问题。但后来我注意到其他 linux 没有防病毒软件的电脑出现问题。 nginx 日志中没有错误。我的 uwsgi
显示了一些关于 "Broken pipe" 的信息,但不是在所有请求中。
知道什么?它没有 space 留在设备上,这是我在数据库日志中重新启动服务器时发现的,并且 df
批准了这一点。关于为什么解决了杀毒软件的唯一解释是它阻止了浏览器缓存(它应该检查每个请求),但是具有一些奇怪行为的浏览器可以简单地忽略错误的响应并显示缓存的响应。
已知 Chrome 问题。根据 Chrome 和 Chromium 错误跟踪器,对此没有通用的解决方案。这个问题与服务器类型和版本无关,就在Chrome.
将 Content-Encoding
header 设置为 identity
解决了我的这个问题。
identity | Indicates the identity function (i.e. no compression, nor
modification).
所以,我可以建议,在某些情况下 Chrome 无法正确执行 gzip 压缩。
如果有任何不存在的循环或项目,那么您就会遇到这个问题。
当运行 Chrome 上的应用时,页面空白且无响应。
场景开始:
开发环境:MAC、STS 3.7.3、tc Pivotal Server 3.1、Spring MVC Web、
在 ${myObj.getfName()}
场景结束:
问题原因:getfName() 函数未在 myObj 上定义。
希望对你有帮助。
我有这个问题。在尝试了这个问题的大多数其他答案后追踪它。这是由 /var/lib/nginx
的所有者和权限引起的,更具体地说 /var/lib/nginx/tmp
目录不正确。
fast-cgi 使用 tmp 目录来缓存生成的响应,但前提是它们超过一定大小。所以这个问题是间歇性的,只有在生成的响应很大时才会出现。
检查 nginx <host_name>.error_log
以查看您是否遇到权限问题。
要修复,请确保 /var/lib/nginx
和所有子目录的所有者和组是 nginx。
我还看到,当存储设备上的 space 太低而无法创建临时文件时,会间歇性地发生这种情况。这种情况下的解决方案是在设备上释放一些 space。
在我的情况下,我遇到了 /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
我的猜测是服务器没有正确处理分块传输编码。它需要用终端块来终止分块文件,以指示整个文件已经 transferred.So 下面的代码可能有效:
echo "\n";
flush();
ob_flush();
exit(0);
在我的例子中,服务器上 mysqlnd_ms php 扩展的配置被破坏了。有趣的是,它在处理持续时间短的请求时运行良好。服务器错误日志中有警告,因此我们已快速修复。
如果有人对 MOODLE 有同样的问题,我只是想与您分享我的经验。
我们的 moodle 平台突然变得非常缓慢,仪表板的加载时间比平时长 2-3 倍(最多 6 秒),有时有些页面根本没有加载(不是 404错误但空白页)。在开发人员工具控制台中,可以看到以下错误:net::ERR_INCOMPLETE_CHUNKED_ENCODING.
正在搜索此错误,看起来 Chrome 是问题所在,但我们遇到了各种浏览器的问题。经过数小时的研究并比较了我最终发现问题前几天的数据库,有人打开了事件监控。但是,在 "Config changes" 日志中,此更改不可见!关闭事件监控,最终解决了问题——我们没有为事件监控定义规则。
我们 运行 Moodle 3.1.2+ 与 MariaDB 和 PHP 5.4.
这似乎是一个具有多种原因和解决方案的常见问题,因此我将在这里为可能需要它的任何人提供我的答案。
我在 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
之后,一切都很顺利。
在我的例子中,这是 html 的问题。 json 响应中的“\n”导致了该问题。所以我删除了它。
很高兴看到这个问题有多少种不同的原因!
很多人说这是一个 Chrome 问题,所以我尝试了 Safari,但仍然有问题。然后尝试了这个线程中的所有解决方案,包括关闭我的 AVG 实时保护,没有运气。
对我来说,问题是我的 .htaccess
文件。它只包含 FallbackResource index.php
,但当我将其重命名为 htaccess.txt
时,我的问题得到解决。
这发生在相隔数年的两个不同客户的服务器上,使用的代码与当时部署在数百台其他服务器上的代码没有问题。
对于这些客户端,它主要发生在 PHP 具有流式传输 HTML 的脚本上 - 也就是说,"Connection: close" 页面在输出可用时将输出发送到浏览器。
事实证明,PHP 进程与 Web 服务器之间的连接在脚本完成之前和任何超时之前过早断开。
问题是 opcache.fast_shutdown = 1 在主 php.ini 文件中。默认情况下该指令是禁用的,但似乎一些服务器管理员认为这里可以提高性能。在我的所有测试中,我从未注意到使用此设置有积极的差异。根据我的经验,它导致一些脚本实际上执行得更慢,并且有一个糟糕的记录,有时在脚本仍在执行时进入关闭状态,甚至在执行结束时 Web 服务器仍在从缓冲区读取。有一份 2013 年的旧错误报告,截至 2017 年 2 月尚未解决,可能与以下内容有关:https://github.com/zendtech/ZendOptimizerPlus/issues/146
我已经看到由于这个原因出现了以下错误
ERR_INCOMPLETE_CHUNKED_ENCODING
ERR_SPDY_PROTOCOL_ERROR
有时会记录相关的段错误;有时不是。
如果您遇到任何一种情况,请检查您的 phpinfo,并确保 opcache.fast_shutdown 已禁用。
我的解决方法是:
<?php ob_start(); ?>
<!DOCTYPE html>
<html lang="de">
.....
....//your whole code
....
</html>
<?php
ob_clean();
ob_end_flush();
ob_flush();
?>
希望这对以后的人有所帮助,就我而言,这是一个卡巴斯基问题,但上面的修复效果很好:)
我得到 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
在我的例子中,它发生在 json 网络 api return 有效负载序列化期间 - 我在 Entity Framework 模型中有一个 'circular' 引用,我正在 return 返回一个简单的一对多对象图,但是子对象有一个返回给父对象的引用,这显然是 json 序列化程序不喜欢的。删除引用父项的子项上的 属性 就可以了。
希望这对可能遇到类似问题的人有所帮助。
嗯,我只是偶然发现了一个类似的问题,但背后的原因不同……
我在带有 Laravel Mix[=25= 的普通 PHP 项目上使用 Laravel Valet ].当我在 Chrome 中打开网站时,它抛出 net::ERR_INCOMPLETE_CHUNKED_ENCODING
错误。 (如果我在 HTTPS 协议上加载了站点,则错误更改为 net::ERR_SPDY_PROTOCOL_ERROR
。)
我检查了 php.ini
并且 opcache
没有启用。我发现在我的案例中,问题与资产文件的版本控制有关——出于某种原因,它似乎不喜欢资产 URL 中的查询字符串(好吧,奇怪的是,只有一个特别? ).
我已经为本地环境删除了 mix.version()
,该站点在我的 Chrome 中在 HTTP 和 HTTPS 协议上加载得很好。
在 Drupal 8(Symfony 框架)控制器的上下文中,这个解决方案对我有用:
$response = new Response($form_markup, 200, array(
'Cache-Control' => 'no-cache',
));
$content = $response->getContent();
$contentLength = strlen($content);
$response->headers->set('Content-Length', $contentLength);
return $response;
否则响应 header 'Transfer-Encoding' 得到一个值 'chunked'。这可能是 Chrome 浏览器的问题。
我遇到了这个问题(在 Chrome 中显示 ERR_INCOMPLETE_CHUNKED_ENCODING,在其他浏览器中没有显示)。原来问题是我的托管服务提供商 GoDaddy 在我的输出末尾添加了一个监控脚本。
当客户端在客户端事件旁边向服务器发送大量请求时,通常会引发此问题。
这通常是客户端编程“糟糕”的标志。
假设我正在更新 table.
的所有行
不好的方法是发送很多请求来更新每一行(rafale 中的很多请求没有等待请求完成)。要更正它,请确保请求已完成,然后再发送另一个请求。
好的方法是发送包含所有更新行的请求。 (一个请求)
所以,首先,看看客户端发生了什么,并在必要时重构代码。
使用 wireshark 识别请求中的错误。
检查 nginx 文件夹权限并为其设置 appache 权限:
chown -R www-data:www-data /var/lib/nginx
最简单的解决方案是在 nginx.conf.
中将设置的代理位置的 proxy_read_timeout 增加到更高的值(比如 120s)
location / {
....
proxy_read_timeout 120s
....
}
我在这里找到了这个解决方案
https://rijulaggarwal.wordpress.com/2018/01/10/atmosphere-long-polling-on-nginx-chunked-encoding-error/
当我遇到这个错误时(从 javascript 调用 AJAX 时);原因是控制器的响应是错误的;它返回的 JSON 格式无效。
对我来说,这是由于硬盘 space 空间不足造成的。
我的申请遇到了同样的问题。我的项目使用 DevOps,问题是因为计算不健康。更换它们解决了我的问题
我已经从 http:// 重定向到 https://,这个问题已经解决了!
我很确定这个问题可能有 多个 原因 — 在服务器端和客户端。
最近我遇到了一个我在 VPS 上托管的网站(Ubuntu 18.04,PHP 7.4 FPM,nginx + certbot,网站由 WordPress 提供支持)— admin页面加载时没有 CSS/JS。
我花了几个小时尝试不同的解决方案,none 其中有帮助。
最后,我发现,出于某种原因(可能是我之前更改过,但也不排除默认情况下是这样的可能性)在我的 /etc/nginx/nginx.conf
第一行文件被评论:
# user www-data
我取消注释,用 sudo service nginx restart
重新启动 nginx,问题就消失了。
如果有人可以检查安装了 nginx 的 pristine Ubuntu 18.04 如果此行默认被注释 - 请将其放在注释中。
这对我来说完全是出于不同的原因。
net::ERR_INCOMPLETE_CHUNKED_ENCODING 200
当我检查页面并转到 newtork 选项卡时,我看到 vendor.js 页面加载失败。检查后发现 js 文件的大小似乎很大 ~ 6.5 mb.Thats 当我意识到我需要压缩 js 时。我检查过我正在使用 ng build
命令来构建。相反,当我使用 ng build --prod --aot --vendor-chunk --common-chunk --delete-output-path --buildOptimizer
它适用于 me.see https://github.com/angular/angular-cli/issues/9016
就我而言,这是一个草率的应用程序问题。正在对 PHP 进行 AJAX 调用,其中包含草率的包含(在两个包含中 PHP 结束定界符之后有尾随白色 space )。这意味着 spaces 在预期的 JSON 输出之前被输出到响应。我只是在响应之前为 JSON 输出 Header 时才发现这一点,并且分块错误被 "headers could not be sent because output had occurred" 的错误所取代。换句话说,AJAX 期待一个 JSON 响应,它得到了 - 有点 - 但响应不干净,因为 JSON 响应不应该在前面有白色它。在 Firebug 网络中查看来自 PHP 的响应时,这一点很明显 - 由于领先的 space,响应在面板中看起来是右对齐的。奇怪的是,并非全白 space 触发了错误 - 只有当响应的整个长度超过某个特定长度时才会发生分块错误。
我通过将数据类型从“.js”更改为“.json”解决了这个问题。
如果您可以在您的本地主机中得到正确的响应并得到这种错误类型的错误,并且如果您正在使用 nginx
。
转到服务器并使用 :
打开 nginx.conf
nano etc/nginx/nginx.conf
在 http 块中添加以下行:
proxy_buffering关闭;
保存并退出文件
这解决了我的问题
在我的例子中 (Windows 10) 问题的根源是我禁用了 WWW 发布服务(我这样做是为了解决 XAMPP 和 IIS 端口 80 的冲突)。我通过在 services.msc 重新打开服务解决了这个问题。我认为该服务仅与端口 80 上的流量有关,但关闭它会导致整个 HTTP 流量混乱。
截至 2022 年使用 Amazon Linux 2 我遇到了这个问题,解决方案是为 /var/lib/nginx 文件夹及其子树文件夹授予适当的权限。因为我的 nginx 用户是 user
那么我的命令是:
sudo chown -R user:user /var/lib/nginx/
如错误标题ERR_INCOMPLETE_CHUNKED_ENCODING
这只是关于编码问题,而不是更多。
也许一些 body 通过禁用杀毒软件或更多...解决了它,这不是正确的方法。
在我和其他一些使用编码语言作为响应的人(如中国或阿拉伯字母表)的情况下,最好的方法是
Returning the data in English instead of your site main response language and handle the translation in UI part.
当然,主要问题是过时的浏览器无法处理它。
在过去的两个月里,我在 Chrome 的开发者控制台上收到以下错误:
net::ERR_INCOMPLETE_CHUNKED_ENCODING
症状:
- 页面未加载。
- 截断 CSS 和 JS 文件。
- 页面挂起。
服务器环境:
- 阿帕奇 2.2.22
- PHP
- Ubuntu
我在 in-house Apache 服务器上遇到了这种情况。其他任何人都不会发生这种情况 - 即我们的 None 用户遇到此问题 - 我们开发团队中的任何其他人也不会遇到此问题。
其他人正在使用完全相同的 Chrome 版本访问完全相同的服务器。我也试过禁用所有扩展程序并以隐身模式浏览 - 没有效果。
我使用过 Firefox 并且发生了完全相同的事情。截断的文件和诸如此类的东西。唯一的问题是,Firefox 不会引发任何控制台错误,因此您需要通过 Firebug 检查 HTTP 请求以查看问题所在。
来自 Apache 的响应 Headers:
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.0 而不是 HTTP 1.1 并不是一个合适的解决方案。
更新:因为我是唯一遇到此问题的人,所以我认为我需要花更多时间调查它是否是客户端问题。如果我进入 Chrome 的设置并使用 "Restore to Default" 选项,问题将消失 大约 10- 20分钟。那么它returns.
错误是说 Chrome 在发送页面时被切断了。您的问题是试图找出原因。
显然,这可能是影响 Chrome 几个版本的已知问题。据我所知,这是一个问题,这些版本对发送的块的内容长度和该块的表达大小非常敏感(我可能离那个很远)。总之,有点不完美headers的问题。
另一方面,可能是服务器没有发送终端0-length chunk。这可能可以用 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 特有的)。
- https://code.google.com/p/chromium/issues/detail?id=461213
- IIS & Chrome: failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING
- https://wordpress.org/support/topic/interface-issue-err_incomplete_chunked_encoding
更新:当PHP(在同一本地主机上)是[=16时抛出致命错误时,我能够(最后)复制此错误=].我想输出被严重破坏以至于没有多大用处(headers 但内容很少或没有)。
具体来说,我不小心让我的代码递归调用自身,直到 PHP,正确地,放弃了。因此,服务器没有向终端发送长度为 0 的块 - 这是我之前发现的问题。
以下应该为每个客户修复它。
//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
好的。我对此进行了三次测试,我 100% 确定 它是由我的防病毒软件 (ESET NOD32 ANTIVIRUS 5) 引起的。
每当我禁用实时保护时,问题就会消失。今天,我将实时保护关闭了 6-7 个小时,但问题从未发生。
几分钟前,我将其重新打开,但问题在一分钟内就出现了。
在过去的 24 小时内,为了保险起见,我再次打开和关闭了实时保护。每次 - 结果都是一样的。
更新:我遇到了另一位开发人员,他在卡巴斯基反病毒软件的实时保护方面遇到了完全相同的问题。他禁用了它,问题就消失了。也就是说,这个问题似乎并不仅限于 ESET。
这里的问题是我的 Avast AV。 一旦我禁用它,问题就消失了。
但是,我真的很想了解这种行为的原因。
我刚开始遇到类似的问题。并注意到只有当页面包含序数值大于 255(即多字节)的 UTF-8 字符时才会发生这种情况。
最终的问题是 Content-Length header 的计算方式。底层后端正在计算字符长度,而不是字节长度。关闭 content-length headers 暂时解决了问题,直到我可以修复后端模板系统。
很抱歉,我没有准确的答案给你。但是我也确实遇到了这个问题,并且至少就我而言,找到了解决方法。所以也许它会为其他更了解 Php 的人提供一些线索。
场景是,我将一个数组传递给了一个函数。该数组的内容用于生成要发送回浏览器的 HTML 字符串,方法是将其全部放入稍后打印的全局变量中。 (这个函数实际上没有返回任何东西。草率,我知道,但这不是重点。)在这个数组中,除其他外,有几个元素通过引用携带嵌套关联数组,这些数组是在这个函数之外定义的.通过 process-of-elimination,我发现在这个函数中对该数组内的任何元素进行操作,无论是否被引用,包括尝试取消设置那些被引用的元素,都会导致 Chrome 抛出 net::ERR_INCOMPLETE_CHUNKED_ENCODING 错误并且显示无内容。尽管全局变量中的 HTML 字符串正是它应该的样子。
只有 re-tooling 脚本首先不应用对数组元素的引用,事情才重新开始正常工作。我怀疑这实际上是一个 Php 错误,与引用元素的存在有关 content-length headers,但我真的不太了解这个当然。
嗯。不久前我也遇到了这个问题。最后我得到了真正解决这个问题的解决方案。
我的问题症状也是页面未加载,发现 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
我在 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>
天哪,我在 5 分钟前解决了同样的问题。我花了几个小时来寻找解决方案。乍一看,禁用防病毒软件解决了 Windows 上的问题。但后来我注意到其他 linux 没有防病毒软件的电脑出现问题。 nginx 日志中没有错误。我的 uwsgi
显示了一些关于 "Broken pipe" 的信息,但不是在所有请求中。
知道什么?它没有 space 留在设备上,这是我在数据库日志中重新启动服务器时发现的,并且 df
批准了这一点。关于为什么解决了杀毒软件的唯一解释是它阻止了浏览器缓存(它应该检查每个请求),但是具有一些奇怪行为的浏览器可以简单地忽略错误的响应并显示缓存的响应。
已知 Chrome 问题。根据 Chrome 和 Chromium 错误跟踪器,对此没有通用的解决方案。这个问题与服务器类型和版本无关,就在Chrome.
将 Content-Encoding
header 设置为 identity
解决了我的这个问题。
identity | Indicates the identity function (i.e. no compression, nor modification).
所以,我可以建议,在某些情况下 Chrome 无法正确执行 gzip 压缩。
如果有任何不存在的循环或项目,那么您就会遇到这个问题。
当运行 Chrome 上的应用时,页面空白且无响应。
场景开始:
开发环境:MAC、STS 3.7.3、tc Pivotal Server 3.1、Spring MVC Web、
在 ${myObj.getfName()}
场景结束:
问题原因:getfName() 函数未在 myObj 上定义。
希望对你有帮助。
我有这个问题。在尝试了这个问题的大多数其他答案后追踪它。这是由 /var/lib/nginx
的所有者和权限引起的,更具体地说 /var/lib/nginx/tmp
目录不正确。
fast-cgi 使用 tmp 目录来缓存生成的响应,但前提是它们超过一定大小。所以这个问题是间歇性的,只有在生成的响应很大时才会出现。
检查 nginx <host_name>.error_log
以查看您是否遇到权限问题。
要修复,请确保 /var/lib/nginx
和所有子目录的所有者和组是 nginx。
我还看到,当存储设备上的 space 太低而无法创建临时文件时,会间歇性地发生这种情况。这种情况下的解决方案是在设备上释放一些 space。
在我的情况下,我遇到了 /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
我的猜测是服务器没有正确处理分块传输编码。它需要用终端块来终止分块文件,以指示整个文件已经 transferred.So 下面的代码可能有效:
echo "\n";
flush();
ob_flush();
exit(0);
在我的例子中,服务器上 mysqlnd_ms php 扩展的配置被破坏了。有趣的是,它在处理持续时间短的请求时运行良好。服务器错误日志中有警告,因此我们已快速修复。
如果有人对 MOODLE 有同样的问题,我只是想与您分享我的经验。
我们的 moodle 平台突然变得非常缓慢,仪表板的加载时间比平时长 2-3 倍(最多 6 秒),有时有些页面根本没有加载(不是 404错误但空白页)。在开发人员工具控制台中,可以看到以下错误:net::ERR_INCOMPLETE_CHUNKED_ENCODING.
正在搜索此错误,看起来 Chrome 是问题所在,但我们遇到了各种浏览器的问题。经过数小时的研究并比较了我最终发现问题前几天的数据库,有人打开了事件监控。但是,在 "Config changes" 日志中,此更改不可见!关闭事件监控,最终解决了问题——我们没有为事件监控定义规则。
我们 运行 Moodle 3.1.2+ 与 MariaDB 和 PHP 5.4.
这似乎是一个具有多种原因和解决方案的常见问题,因此我将在这里为可能需要它的任何人提供我的答案。
我在 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
之后,一切都很顺利。
在我的例子中,这是 html 的问题。 json 响应中的“\n”导致了该问题。所以我删除了它。
很高兴看到这个问题有多少种不同的原因!
很多人说这是一个 Chrome 问题,所以我尝试了 Safari,但仍然有问题。然后尝试了这个线程中的所有解决方案,包括关闭我的 AVG 实时保护,没有运气。
对我来说,问题是我的 .htaccess
文件。它只包含 FallbackResource index.php
,但当我将其重命名为 htaccess.txt
时,我的问题得到解决。
这发生在相隔数年的两个不同客户的服务器上,使用的代码与当时部署在数百台其他服务器上的代码没有问题。
对于这些客户端,它主要发生在 PHP 具有流式传输 HTML 的脚本上 - 也就是说,"Connection: close" 页面在输出可用时将输出发送到浏览器。
事实证明,PHP 进程与 Web 服务器之间的连接在脚本完成之前和任何超时之前过早断开。
问题是 opcache.fast_shutdown = 1 在主 php.ini 文件中。默认情况下该指令是禁用的,但似乎一些服务器管理员认为这里可以提高性能。在我的所有测试中,我从未注意到使用此设置有积极的差异。根据我的经验,它导致一些脚本实际上执行得更慢,并且有一个糟糕的记录,有时在脚本仍在执行时进入关闭状态,甚至在执行结束时 Web 服务器仍在从缓冲区读取。有一份 2013 年的旧错误报告,截至 2017 年 2 月尚未解决,可能与以下内容有关:https://github.com/zendtech/ZendOptimizerPlus/issues/146
我已经看到由于这个原因出现了以下错误 ERR_INCOMPLETE_CHUNKED_ENCODING ERR_SPDY_PROTOCOL_ERROR 有时会记录相关的段错误;有时不是。
如果您遇到任何一种情况,请检查您的 phpinfo,并确保 opcache.fast_shutdown 已禁用。
我的解决方法是:
<?php ob_start(); ?>
<!DOCTYPE html>
<html lang="de">
.....
....//your whole code
....
</html>
<?php
ob_clean();
ob_end_flush();
ob_flush();
?>
希望这对以后的人有所帮助,就我而言,这是一个卡巴斯基问题,但上面的修复效果很好:)
我得到 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
在我的例子中,它发生在 json 网络 api return 有效负载序列化期间 - 我在 Entity Framework 模型中有一个 'circular' 引用,我正在 return 返回一个简单的一对多对象图,但是子对象有一个返回给父对象的引用,这显然是 json 序列化程序不喜欢的。删除引用父项的子项上的 属性 就可以了。
希望这对可能遇到类似问题的人有所帮助。
嗯,我只是偶然发现了一个类似的问题,但背后的原因不同……
我在带有 Laravel Mix[=25= 的普通 PHP 项目上使用 Laravel Valet ].当我在 Chrome 中打开网站时,它抛出 net::ERR_INCOMPLETE_CHUNKED_ENCODING
错误。 (如果我在 HTTPS 协议上加载了站点,则错误更改为 net::ERR_SPDY_PROTOCOL_ERROR
。)
我检查了 php.ini
并且 opcache
没有启用。我发现在我的案例中,问题与资产文件的版本控制有关——出于某种原因,它似乎不喜欢资产 URL 中的查询字符串(好吧,奇怪的是,只有一个特别? ).
我已经为本地环境删除了 mix.version()
,该站点在我的 Chrome 中在 HTTP 和 HTTPS 协议上加载得很好。
在 Drupal 8(Symfony 框架)控制器的上下文中,这个解决方案对我有用:
$response = new Response($form_markup, 200, array(
'Cache-Control' => 'no-cache',
));
$content = $response->getContent();
$contentLength = strlen($content);
$response->headers->set('Content-Length', $contentLength);
return $response;
否则响应 header 'Transfer-Encoding' 得到一个值 'chunked'。这可能是 Chrome 浏览器的问题。
我遇到了这个问题(在 Chrome 中显示 ERR_INCOMPLETE_CHUNKED_ENCODING,在其他浏览器中没有显示)。原来问题是我的托管服务提供商 GoDaddy 在我的输出末尾添加了一个监控脚本。
当客户端在客户端事件旁边向服务器发送大量请求时,通常会引发此问题。
这通常是客户端编程“糟糕”的标志。
假设我正在更新 table.
的所有行不好的方法是发送很多请求来更新每一行(rafale 中的很多请求没有等待请求完成)。要更正它,请确保请求已完成,然后再发送另一个请求。
好的方法是发送包含所有更新行的请求。 (一个请求)
所以,首先,看看客户端发生了什么,并在必要时重构代码。
使用 wireshark 识别请求中的错误。
检查 nginx 文件夹权限并为其设置 appache 权限:
chown -R www-data:www-data /var/lib/nginx
最简单的解决方案是在 nginx.conf.
中将设置的代理位置的 proxy_read_timeout 增加到更高的值(比如 120s)location / {
....
proxy_read_timeout 120s
....
}
我在这里找到了这个解决方案 https://rijulaggarwal.wordpress.com/2018/01/10/atmosphere-long-polling-on-nginx-chunked-encoding-error/
当我遇到这个错误时(从 javascript 调用 AJAX 时);原因是控制器的响应是错误的;它返回的 JSON 格式无效。
对我来说,这是由于硬盘 space 空间不足造成的。
我的申请遇到了同样的问题。我的项目使用 DevOps,问题是因为计算不健康。更换它们解决了我的问题
我已经从 http:// 重定向到 https://,这个问题已经解决了!
我很确定这个问题可能有 多个 原因 — 在服务器端和客户端。
最近我遇到了一个我在 VPS 上托管的网站(Ubuntu 18.04,PHP 7.4 FPM,nginx + certbot,网站由 WordPress 提供支持)— admin页面加载时没有 CSS/JS。
我花了几个小时尝试不同的解决方案,none 其中有帮助。
最后,我发现,出于某种原因(可能是我之前更改过,但也不排除默认情况下是这样的可能性)在我的 /etc/nginx/nginx.conf
第一行文件被评论:
# user www-data
我取消注释,用 sudo service nginx restart
重新启动 nginx,问题就消失了。
如果有人可以检查安装了 nginx 的 pristine Ubuntu 18.04 如果此行默认被注释 - 请将其放在注释中。
这对我来说完全是出于不同的原因。
net::ERR_INCOMPLETE_CHUNKED_ENCODING 200
当我检查页面并转到 newtork 选项卡时,我看到 vendor.js 页面加载失败。检查后发现 js 文件的大小似乎很大 ~ 6.5 mb.Thats 当我意识到我需要压缩 js 时。我检查过我正在使用 ng build
命令来构建。相反,当我使用 ng build --prod --aot --vendor-chunk --common-chunk --delete-output-path --buildOptimizer
它适用于 me.see https://github.com/angular/angular-cli/issues/9016
就我而言,这是一个草率的应用程序问题。正在对 PHP 进行 AJAX 调用,其中包含草率的包含(在两个包含中 PHP 结束定界符之后有尾随白色 space )。这意味着 spaces 在预期的 JSON 输出之前被输出到响应。我只是在响应之前为 JSON 输出 Header 时才发现这一点,并且分块错误被 "headers could not be sent because output had occurred" 的错误所取代。换句话说,AJAX 期待一个 JSON 响应,它得到了 - 有点 - 但响应不干净,因为 JSON 响应不应该在前面有白色它。在 Firebug 网络中查看来自 PHP 的响应时,这一点很明显 - 由于领先的 space,响应在面板中看起来是右对齐的。奇怪的是,并非全白 space 触发了错误 - 只有当响应的整个长度超过某个特定长度时才会发生分块错误。
我通过将数据类型从“.js”更改为“.json”解决了这个问题。
如果您可以在您的本地主机中得到正确的响应并得到这种错误类型的错误,并且如果您正在使用 nginx
。
转到服务器并使用 :
打开 nginx.confnano etc/nginx/nginx.conf
在 http 块中添加以下行:
proxy_buffering关闭;
保存并退出文件
这解决了我的问题
在我的例子中 (Windows 10) 问题的根源是我禁用了 WWW 发布服务(我这样做是为了解决 XAMPP 和 IIS 端口 80 的冲突)。我通过在 services.msc 重新打开服务解决了这个问题。我认为该服务仅与端口 80 上的流量有关,但关闭它会导致整个 HTTP 流量混乱。
截至 2022 年使用 Amazon Linux 2 我遇到了这个问题,解决方案是为 /var/lib/nginx 文件夹及其子树文件夹授予适当的权限。因为我的 nginx 用户是 user
那么我的命令是:
sudo chown -R user:user /var/lib/nginx/
如错误标题ERR_INCOMPLETE_CHUNKED_ENCODING 这只是关于编码问题,而不是更多。 也许一些 body 通过禁用杀毒软件或更多...解决了它,这不是正确的方法。 在我和其他一些使用编码语言作为响应的人(如中国或阿拉伯字母表)的情况下,最好的方法是
Returning the data in English instead of your site main response language and handle the translation in UI part.
当然,主要问题是过时的浏览器无法处理它。