有些时候自有或第三方系统需要在请求头内增加一些校验的参数,但是普通a标签的方式无法设置请求头,这时可以使用axios下载。
首先下载时responseType参数需要设成blob类型,因为axios默认是json。并且返回必须是axios原生的response类,需要修改下相应拦截器。编写时需要注意以上两点。
下面是请求完后then的逻辑。
.then((res) => {
// 这里是response对象
const fileName = res.headers['content-disposition'].match(
/filename=(.*)/
)[1]
// 将二进制流转为blob
const blob = new Blob