• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

让后端设置了Access-Control-Expose-Headers还是获取不到filename

武飞扬头像
大大前端小小菜鸡
帮助1

问题:导出一个文件,从后端设置的content-disposition中获取对应的fileName,but,本地获取正常,但是部署线上就无法获取。

大过年的@让修改,你敢信?

前端获取  重要代码

 let fileName=decodeURIComponent(res.headers['content-disposition'].split('=')[1]);

学新通

 但是res.headers部署后获取不到content-dispostion,就很无语

接下来是解决思路,基本问题就出在这几个方面

1.首先检查响应拦截器是否直接返回的res.data,这个时候获取的是不包含请求头的,所以拦截器那里需要修改

按照自己封装得返回得,就是要返回所有

学新通

2. 其次检查netWork得接口得请求头

学新通

 是否返回了对应的Content-Disposition,保证后端已经设置且返回

3.是否设置了请求头进行暴露了对应的Content-Disposition

学新通

 十分重要,当时我这边参考了对应文章和后端沟通让设置

response.setHeader("Access-Control-Expose-Headers","Content-Disposition");
后端后来设置后,前端还是怎么也拿不到请求头中的Content-Disposition,然后就是甩锅,说前端自己获取不到,大家半斤八两的何必呢,只能找原因

 里面的一个截图,看到,才知道后端根本没有设置上,反手就想给一巴掌,然后后端查询原因才知道他们的暴露的头部不知道咋设置死了,后期设置无法添加上(不太懂后端)

总算问题得到了解决,花费2小时,很无语。只知道甩锅不解决问题的后端

当然也是学习,补充下原理知识

算了参考上面那个文章,我这只做个记录

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgejgjk
系列文章
更多 icon
同类精品
更多 icon
继续加载