spring HandlerInterceptorAdapter拦截ajax异步请求,报错ERR_INCOMPLETE_CHUNKED_ENCODING

话不多说,直接上正文。

异常信息:
  Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING
问题描述:
  该异常是在页面发送ajax请求到服务器,中间使用了HandlerInterceptorAdapter对请求做了处理。ajax返回json格式的数据时发生的错误信息。
网络上搜索出的问题大多是页面、权限、或者其他不相关的问题导致的。浪费了很多时间、精力之后,发现自己找错了方向。
解决思路:
step1.
  英文翻译:网络错误:不完整的分块编码。
  技术翻译:网络传输错误,不完整的报文结构
step2.
  单步调试:在HandlerInterceptorAdapter中的postHandle()方法中,有对modelAndView添加的model进行处理,此时的modelAndView为null!--bingo!
  源代码:
    
    @Override
    public void postHandle(HttpServletRequest httpServletRequest,
                           HttpServletResponse httpServletResponse, Object o,
                           ModelAndView modelAndView) throws Exception {
        HttpSession session = httpServletRequest.getSession();
        String userName = session.getAttribute(Constants.SESSION_USER_NAME).toString();
        modelAndView.addObject("username", userName);
        super.postHandle(httpServletRequest, httpServletResponse, o, modelAndView);
  }

 

   简单的说,就是发送的是ajax异步请求,只是想获取一个json封装的数据,而在拦截器中却硬生生的加了个modelAndView,而且controller层返回的数据中也并没有实例modelAndView。这个modelAndView也不是ajax请求想要的返回数据。
 
解决方案:
  对modelAndView为null做个判断:
  
  if (!modelAndView.isEmpty()) {
            modelAndView.addObject("username", userName);
       }
感想:
  遇到比较难的问题,还是仔细阅读错误信息以及单步调试吧

转载于:https://www.cnblogs.com/not-NULL/p/6148863.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值