后端跨域问题导致java.io.IOException: UT010029: Stream is closed解决办法
转载自:https://blog.csdn.net/qq_45925197/article/details/126708024
背景
-
下载文件压缩成zip包接口,postman自测没问题,但在和前端联调的时候前端就会出现如下跨域的报错:
-
而且与其他正常请求相比,响应头如下少了跨域的几个header文件:
-
同时,后台日志出现了java.io.IOException: UT010029: Stream is closed
解决
猜测全局的跨域配置在某一个地方失效了;经排查,最终发现代码中response#reset重置了response,造成前端无法下载并报跨域问题。
#下载工具类
response.reset(); //将这一行注释掉就解决了
response.setCharacterEncoding(CharsetConstant.UTF8);
response.setContentType("application/zip");
项目本身的跨域配置如下:
@Configuration
public class CorsConfig {
@Bean
public FilterRegistrationBean<CorsFilter> corsFilter() {
final CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.setAllowCredentials(true);
corsConfiguration.addAllowedOriginPattern("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", corsConfiguration);
FilterRegistrationBean<CorsFilter> bean = new FilterRegistrationBean<>(new CorsFilter(source));
bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
return bean;
}
}
分类:
bugList
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署