报错背景: 在做开源项目《瑞吉外卖》时,编写拦截器代码后,前端登录时,后端报错如下:
文章来源地址https://www.toymoban.com/news/detail-673737.html
思考与思路:
Cannot call sendError() after the response has been committed.....意思是,当response已经提交后,不能再sendError()。那也就是说,我在代码中一定是response响应了多次。
查询相关网文后,理解到:前端与后端进行http交互时,当response后,支持其交互的Socket已经关闭,在Socket关闭状态下,若再response,就会报Cannot call sendError() after the response has been committed.....错误!
解决:
发现自己的代码,在方法的最开始就已毫无条件的将任何资源都放行,即 filterChain.doFilter(request, response);当此行代码后,再继续编写执行关于response的代码,就会报错上面的错误。所以,将此行代码注释掉即可。
相关网文链接:
Cannot call sendError() after the response has been committed - 夜无良 - 博客园 (cnblogs.com)
(15条消息) 【SSH问题】java.lang.IllegalStateException: Cannot call sendError() after the response has been committe_一枪尽骚丶魂的博客-CSDN博客
文章来源:https://www.toymoban.com/news/detail-673737.html
到了这里,关于报错解决:Cannot call sendError() after the response has been committed的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!