有几个数据量比较大( 57kb 左右)的 api 在 chrome 浏览器下偶尔会报错如下:
GET localhost:3000/api/v1/xxx net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)

这里的 3000 是 vite 的端口,对应的后端端口是 4000 。
复现场景

PC 版 chrome 通过 vite 代理访问后端 api (版本 133.0.6943.99 )

已尝试过且正常的场景

PC chrome 直接访问后端 api 正常
PC edge 直接访问后端 api 正常
PC edge 通过 vite 代理访问后端 api 正常
PC firefox 直接访问后端 api 正常
PC firefox 通过 vite 代理访问后端 api 正常
Mac chrome 直接访问后端 api 正常
Mac chrome 通过 vite 代理访问后端 api 正常
PC chrome 访问线上环境 正常
用同事电脑访问 vite 代理 api 也是正常的

怀疑是不是 chrome 哪里设置不对,但是最近也没改动过设置,我还把 chrome 上所有的扩展都禁用了
之前没有任何问题,最近也没改动过代码,也没升级过依赖库,发现问题是因为我更新了 GoLand ,然后重启了电脑就出现这个问题了。
最开始以为是 GoLand 版本导致的,我尝试过不用 GoLand 启动后端程序、GoLand 降级为之前版本,问题依旧
前后端分离的方式,后端是用 Go+Gin,前端是 Vue3+Vite5.2.6 ,本地开发的时候 vite.config.ts 里的 server 配置如下
proxy: {
"/api/v1": {
target: " localhost:4000",
ws: true,
changeOrigin: true,
},
}

看看原始 go api 返回的 response header 和 vite api 返回的 response header

原始 api 的:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Date: Wed, 19 Feb 2025 02:00:08 GMT
Transfer-Encoding: chunked

vite 正常返回:
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
content-type: application/json; charset=utf-8
date: Wed, 19 Feb 2025 02:01:05 GMT
connection: close
transfer-encoding: chunked

vite 报错返回:
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
content-type: application/json; charset=utf-8
date: Wed, 19 Feb 2025 02:01:42 GMT
connection: close
transfer-encoding: chunked

如果是 mac 的话,兴许是要在本地网络里面勾选上 chrome

重启服务器

我前几天也碰到这个问题,客户端弄了一遍没有好。 同事把服务重启了就好了

issues.chromium.org/issues/391126826

#5 后端服务和前端现在都在我本机电脑上,尝试过重启还是不行

看着好像不是同一个问题。 而且我这个问题很奇葩,线上环境数据量比我本地的还大,已经的大于 57kb 了,访问也没这个问题

看看有问题的电脑 c 盘空间是不是不够了,具体啥原因忘了

2 楼说了 The page would load normally if accessed in HTTPS mode
如果线上是 https 就不会复现

#10 线上确实是 https
如果在本地我把前端打包后直接放在和后端服务里(相当于前后端都是同一个 host )的情况下用 chrome 访问也没问题

够的呢,c 盘还有 500g+

node 版本是多少
这里有个和版本相关的原因
github.com/nodejs/node/issues/13677

另外 vite 的 proxy 用的一个古老的 http-proxy 包,它也有嫌疑
github.com/http-party/node-http-proxy/issues/921

chunked 响应?可能是响应里没有正确的结束符,结尾需要额外传输 0\r\n\r\n 表示结束

这个错误是数据在传输过程中服务器突然中断了,是不是在调试时,你的服务有什么热更新然后重启了?

node 版本是 v20.11.0

关键是只有我电脑上的 chrome 有这个问题,我用别的浏览器或者别的电脑访问都没问题。

没有,就正常访问偶现,而且概率还挺高

你可以尝试模拟下返回的数据,尝试返回不同大小的数据,看看是否报错。怀疑 chrome 对非安全数据大小有限制?

目前有 3 个接口返回的数据量比较大,我尝试过把这 3 个接口都返回空就不会报错。 但是这 3 个接口也不是 100%报错,而且有一定概率会报错

是不是搞了负载均衡之类的东西

没有哦,就在我本地,一个后端

建议换一台 PC 或者换个 chroome 版本试试,Chrome 其实没你想象的那么可靠,在一些边缘场景会有问题反反复复出现。

可以用 browserstack 测试不同版本的浏览器。

#22 感谢,我看看 browserstack

遇到玄学问题可以尝试下玄式方案,比如换个端口?

你说的有道理,我试试