net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK) 问题解决

net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK) 问题解决简述浏览器调用接口报错 net ERR INCOMPLETE CHUNKED ENCODING200 OK 错误 编码模块不完整 返回浏览器的流可能原因 1 丢包 2 响应数据被限制 3 读取流异常终止针对可能的原因排查可以从几个方面 1 网络是否稳定 2 服务器端是否有对响应数据做限制 比如 nginx 转发的数据限制 spring Servlet 的 HTTP 响应数据大小限制

简述

浏览器调用接口报错  net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)

错误描述:编码模块不完整,返回浏览器的流不完整

可能原因:

1、丢包

2、响应数据被限制

3、读取流异常终止


针对可能的原因排查可以从几个方面

1、网络是否稳定

2、服务器端是否有对响应数据做限制,比如:nginx转发的数据限制,spring/Servlet的HTTP响应数据大小限制,或者是自定义拦截器的响应数据限制

3、服务器的数据限制,如Tomcat


针对以上排查,根据查阅的资料,有如下具体方式以及对应的解决办法:

>> nginx转发的数据限制

然后重启nginx


>> tomcat数据限制

然后重启 tomcat


>> spring 配置限制

根据spring boot 版本不同在application文件添加不同的配置


>> spring 加@ResponseBody 引起的流关闭

代码接口上去掉注解@ResponseBody


>> 拦截器

拦截过滤掉一些响应太大的响应


我的

原因:数据导出接口,需要导出量比较大的数据,然后异常,数据小的时候测试通过,数据量变大到一定程度,异常

接口如下:

@ResponseBody public void exportImsirecord(@RequestBody(required = false) WarningBO warningBO, HttpServletResponse response){     OutputStream os = response.getOutputStream();     StringBuffer buf = new StringBuffer();     buf.append(很多数据);     os.write(buf.toString().getBytes("utf-8")); }

请求后然后浏览器报错  net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)

同时后台也报错:流异常关闭

最后的解决办法是 去掉 @ResponseBody,接口变成

public void exportImsirecord(@RequestBody(required = false) WarningBO warningBO, HttpServletResponse response){      }

两个原因:

1、@ResponseBody 走了数据转换,有数据限制

2、过滤器 响应 ResponseBody 读取有时间限制,解析太久中断流


总结:

本质原因都是响应数据不完整导致,排查针对这个去就行,包括前端后端所有都有可能导致,常见的应该是数据配置限制了

?‍?本文结束,希望有帮到阁下。更多问题可以到我博客来搜索
?【点击搜索
?【进入博客】




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200223.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午11:17
下一篇 2026年3月20日 上午11:17


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号