解决前端调用后端传输文件跨域失败问题


 本人在开发中碰到过这样的问题,本地测试没有问题,但是和前后端联调时出现跨域问题,可是后端代码中明明配置了放行所有请求,其他接口也没有报这种CORS跨域问题,偏偏这个传输文件接口报跨域问题,当时的代码是这样的:  

response.reset();            
httpResponse.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(newFileName, "UTF-8"));
httpResponse.setContentType("application/octet-stream");
httpResponse.setCharacterEncoding("utf-8");
OutputStream outputStream = httpResponse.getOutputStream();
while ((length = object.read(buf)) > 0) {
  outputStream.write(buf, 0, length);
}

 自己看了一会也没找到具体问题,之后查了一下,发现了问题,就是下面这个,把原本相应头里面允许跨域的头字段信息全部去掉了,因此造成了前端下载跨域问题,去掉之后就好了

response.reset();

或者添加这几个代码也可以解决

response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
response.addHeader("Access-Control-Allow-Headers", "Content-Type");

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM