前后端的大佬们帮忙看看,最近遇到个奇葩问题
有几个数据量比较大( 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
遇到玄学问题可以尝试下玄式方案,比如换个端口?
你说的有道理,我试试
起因: 某个业务 api 域名(有备案),跳转到了 m.jd.com 。 被阿里云告知: 24 小时候会下线账号下所有域名,需要对违规域名进行整改和申诉。 联系阿里云工…
腾讯应用宝专区正式在 Microsoft Store 上线,所有的 Windows 10 和 Windows 11 用户都可以体验,腾讯应用宝专区提供 1000 多款针对 PC…
虽然大部分情况下只用英文搜索,很少见到 CSDN ,但还是好奇一个代码要登录才能复制,评论要登录可见,打开还要叉掉“红包雨”的体验如此烂的平台为什么会有这么多开发者愿意把自己的…