您现在的位置是:首页 > Javascript
当前栏目
后端跨域问题导致java.io.IOException: UT010029: Stream is closed解决办法
2023-04-18 15:25:19 时间
转载自: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;
}
}
相关文章
- DjangoForm组件
- 前端之清除浮动的方式
- CSS
- jQuery中$.each()常见使用方法有哪些
- jQuery中text()方法如何获取/设置文本?
- javascript中事件是什么
- js获取dom节点的方法有哪些
- JavaScript 输出数据的方式有哪些
- JavaScript中jquery框架的特点
- js中jquery动画移动到最右边
- js中this指向有几种情况
- jQuery如何使用文档操作detach()方法
- Node.js 16.5.0正式发布,版本更新速看
- Vue框架在PostCSS中使用sass的方法
- JavaScript快速学习设计模式
- js new操作符的使用步骤
- js中co模块是什么
- 面试准备:快速学习JS防抖与节流
- http代理有哪些类别?
- 8月Web服务器排行榜出炉,Nginx崭露头角