一般存在两种方式:
1,请求接口之后,后端返回文件路径,前端直接下载。
2,请求接口之后,后端以文件流的形式返回给前端,前端再下载到本地。
第一种方式:
window.location.href = res.request.responseURL
直接拿取下载,但是不能改名称。
第二种方式:
就是正常的api请求,后端以文件流的形式发送给前端,前端获取到文件数据之后,在本地模拟一次点击按钮下载
data时你要传递的数据,重点是 responseType: 'blob',请求时要设置类型,我这里是下载后端传来的二进制流压缩包,
拿到数据之后想干嘛就随意了,无非是改名字,创建标签链接。
const blob = new Blob([result.data]);
const link = document.createElement('a');
link.download = fileName;
link.href = URL.createObjectURL(blob);
link.click();