记后端使用Response写文件流返回前端出现的跨域问题

337 阅读1分钟

今天在和前端联调时,出现了一个跨域错误。

image.png

但是其他接口又没有问题,先检查导出接口: image.png

再检查通用跨域配置: image.png

看着都没错,查看文件流代码: image.png

陡然看到一行

response.reset();

原来是response.reset()重置了响应,导致前端无法下载并报跨域问题。于是尝试在reset()下面加上这几行代码,就可以解决跨域问题了

//重新设置接口允许跨域
if (SystemHelper.isProdEnv()) {
    response.addHeader("Access-Control-Allow-Origin", "https://xxxxx.cn");
}else {
    // 非线上环境允许跨域
    response.addHeader("Access-Control-Allow-Origin", "*");
}