问题重现
这里是实现了 导出的功能 但是在线上的时候 出现了 导出失败的问题;
我们需要拿到响应头里的Content-Disposition字段的值,从中分离出文件名。
本地可以看到 打印出来了content-disposition
线上的network中也可以看到 这个文件名;但是我把它从请求头中打印出来的时候,就没有这个字段;所以线上就会导出失败
分析问题
浏览器限制了这一类请求头的暴露问题;所以需要服务端配合完成;
解决方案
后端虽然加了这个;但是我们只能在network中看到,无法通过js在请求头中拿到Content-Disposition
所以还需要加一段代码
response.setHeader("Access-Control-Expose-Headers","Content-Disposition");
效果
加上这一段代码就可以导出成功了;
这里附上后端代码