无法加载资源:net::ERR_CONTENT_LENGTH_MISMATCH

IT技术 javascript jquery image google-chrome
2021-02-28 00:54:15

此错误消息是什么意思,我该如何解决?那是来自 Windows 7 上的 Google Chrome v33.0 控制台。

无法加载资源:net::ERR_CONTENT_LENGTH_MISMATCH            http://and.img.url/here.png

我正在尝试src使用 jQuery更改图像的属性。例如像这样(简化):

$('.image-prld').attr('src', someDynamicValue);

页面上大约有 30 张图片。每次重新加载页面时,随机图像都会发生上述错误。但有时它适用于所有图像,没有任何错误。

当这种错误发生时,特别是图像显示像这样

在此处输入图片说明

但是,当我在新选项卡上打开错误消息旁边的链接时,图像正在加载,这在逻辑上告诉我图像有效并且存在。

6个回答

此错误是在 HTTP 标头中公布的数据与通过网络传输的数据之间的明确不匹配。

它可能来自以下几点:

  1. 服务器:如果服务器的某些module存在错误,该错误会更改内容但不更新标题中的内容长度,或者只是无法正常工作。Node HTTP 代理在某些时候就是这种情况(请参阅此处

  2. 代理:您和您的服务器之间的任何代理都可能正在修改请求而不更新内容长度标头。

据我所知,我在 IIS 中没有看到这些问题,但主要是自定义编写的代码。

如果这有帮助,请告诉我。

“在 HTTP 标头中公布的数据之间肯定不匹配”完全 - 由于从后端返回的无效 JSON 而发生在我身上。
2021-04-25 00:54:15
你没有。强迫它就像修补症状一样。找到根本原因,修复它并享受更健康的网络。
2021-05-02 00:54:15
是的,但是你如何强制 Chrome 忽略错误并显示/呈现页面呢?整个文件已经转移,只是长度不匹配。它适用于 Curl(它只是不呈现)。
2021-05-09 00:54:15
服务器在一个旧路由器里面!我没有权限!
2021-05-21 00:54:15

Docker + NGINX

在我的情况下,问题是 nginx docker 容器磁盘空间。我有 10GB 的日志,当我减少这个数量时它可以工作。

循序渐进(适用于新手/新手)

  1. 在您的容器中输入: docker exec -it <container_id> bash

  2. 转到您的日志,例如:cd /var/log/nginx

  3. [可选] 显示文件大小:ls -lh用于单个文件大小或du -h文件夹大小。

  4. 空文件> file_name

  5. 有用!。

对于高级开发人员/系统管理员

> file_name或类似的方法清空你的 nginx 日志

希望能帮助到你

谢谢@IanEllis。我添加了高级开发人员/系统管理员选项
2021-04-22 00:54:15
我有这个问题,但不知道为什么会发生。我有一个中等大小的图像,只能在 Chrome 中加载。我有足够的磁盘空间。一旦我按照上面的操作,它就起作用了。如果有足够的磁盘空间,为什么会发生这种情况?此外,仅使用 nginx,而不是 docker。
2021-04-30 00:54:15
天!拯救了我的一天
2021-05-04 00:54:15
在第 4 步中仅使用 > file_name 保存 10 个击键;)
2021-05-05 00:54:15
Disk space 是关键词!
2021-05-09 00:54:15

它甚至可能是由您的广告拦截器引起的

尝试禁用它或为图像来自的域添加例外。

哇,这个问题是 5 年前提出的。然而,它对我的​​情况有所帮助。
2021-05-05 00:54:15
对了!知道为什么会这样吗?是因为广告拦截器将代码注入到获取的每个文件中吗?如果是这样,那么为什么每个请求的文件都不会发生这种情况?
2021-05-13 00:54:15
实际上我不知道广告拦截器究竟是如何工作的(这就是我使用条件的原因)。也许与过滤器有关,因此代码不会注入到每个文件中,而只会注入与过滤器中描述的特定模式匹配的文件中。
2021-05-17 00:54:15

这可能是由于磁盘已满 (Ubuntu/Nginx) 造成的。

我的情况:

在我的情况下,磁盘未满,但脚本很有用。可能是临时文件夹已满?
2021-05-14 00:54:15
@echo 如果 tmp 文件夹有它自己的“磁盘”,可能是这种情况?如果你用“df -h”检查你应该看看是不是这样?如果磁盘上有很多文件,也可能是因为 inode 用完了(如果是这种情况,我相信“df -i”应该显示)。如果任一显示“完整磁盘”清理可能有帮助;)
2021-05-21 00:54:15

在我的情况下,我错误地计算了我在标题中宣传的内容长度。我正在为文件提供范围请求,但我错误地在 Content-Length 中发布了文件大小。

我通过将 Content-Length 设置为我发送回浏览器的实际范围来解决这个问题。

因此,如果我正在回答正常请求,我会将 Content-Length 设置为文件大小。如果我正在回答范围请求,我将 Content-Length 设置为请求范围的实际长度。