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


凡尘丶
112 声望0 粉丝

这个人很懒