You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ajax获取数据遇net::ERR_INCOMPLETE_CHUNKED_ENCODING及StackOverflowError求助

解决GET请求出现net::ERR_INCOMPLETE_CHUNKED_ENCODING与StackOverflowError的问题

兄弟,你这问题我熟!前端请求GET http://localhost:8080/loggedUsers时出现net::ERR_INCOMPLETE_CHUNKED_ENCODING,同时后端抛出java.lang.StackOverflowError,结合栈信息里的Jackson相关异常,核心原因基本是对象循环引用导致JSON序列化递归溢出——服务器还没完成响应就崩了,前端自然收不到完整的分块编码数据。

下面给你一步步排查和解决的思路:

一、先定位循环引用的对象

先检查你要返回的loggedUsers相关实体类,有没有双向/循环引用的情况:

  • 比如User类里有Group类型的属性,而Group类里又有List<User>类型的属性
  • 或者实体类自己引用自己(比如菜单类里同时有父菜单和子菜单属性)
    这种引用关系会让Jackson在序列化时无限递归遍历,直接撑爆JVM栈空间,抛出StackOverflowError。

二、用Jackson注解快速解决循环引用

针对循环引用,最常用的两种解决方案:

  • 方案1:用@JsonIgnore忽略引用字段
    在循环引用的其中一方字段上添加@JsonIgnore注解,简单直接切断递归链:

    public class Group {
        private String name;
        @JsonIgnore // 忽略该字段,避免递归序列化
        private List<User> users;
        // getter/setter
    }
    

    优点是操作简单,缺点是会丢失该字段的序列化数据。

  • 方案2:用@JsonManagedReference和@JsonBackReference配合
    这种方式能保留数据,同时避免递归:

    public class User {
        private String username;
        @JsonManagedReference // 标记主动引用的一方
        private Group group;
        // getter/setter
    }
    
    public class Group {
        private String name;
        @JsonBackReference // 标记反向引用的一方,Jackson会自动跳过递归
        private List<User> users;
        // getter/setter
    }
    

三、验证序列化是否正常

可以在后端写个简单的测试代码,手动触发Jackson序列化,快速验证问题是否解决:

@Autowired
private ObjectMapper objectMapper;

@Test
public void testSerialization() throws JsonProcessingException {
    List<User> loggedUsers = // 模拟获取你的用户列表
    String json = objectMapper.writeValueAsString(loggedUsers);
    System.out.println(json); // 如果能正常输出,说明循环引用问题已解决
}

四、其他可能的排查方向

如果确认没有循环引用,那就要检查是否有其他递归逻辑导致栈溢出:

  • 比如某个业务方法自己调用自己,没有终止条件
  • 或者深层嵌套的方法调用(比如多层递归生成权限树、菜单树等)
    不过结合你给出的Jackson栈信息,循环引用还是最可能的原因。

最后要说明:前端的net::ERR_INCOMPLETE_CHUNKED_ENCODING是后端异常的连锁反应,只要解决了后端的StackOverflowError,前端的请求就能正常收到完整响应了。

内容的提问来源于stack exchange,提问作者user9658240

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:21:35