共计 423 个字符,预计需要花费 2 分钟才能阅读完成。
背景介绍:下载文件,前端获取到二进制流数据后,通过响应头 Response Headers 中的 Content-Disposition 属性读取文件名,最终实现下载 excel。
项目中对 axios 进行了一定的封装,其中响应拦截如下,红框部分内容为后来添加的,判断当为下载时,返回 response,这样在组件中调用接口时候就能读取到 headers 中所需要的信息了,
axios 文档响应结构如下,headers 中就包含了我们所需要的内容,对于下载来说,默认的接口中是不会返回 Content-Disposition 字段的,header 中的 Content-Disposition 属性是后端同学添加的,具体的像“Access-Control-Expose-Headers: Content-Disposition”这样设置。
之后在组件中解析文件名下载即可,因为在响应拦截中返回了 response,需要注意下载时候读取的数据应该是 res.data
以上,有问题欢迎指正交流。
正文完
发表至: javascript
2020-06-28