axios 下载文件流
axios 下载文件流
背景:在处理文件下载时,服务端存在校验,需要在请求头里添加token 这时直接使用 a 标签就不能满足需求。接下来我们直接通过 axios 请求,在请求头里设置 token
请求获取文件流并下载
axios({
method: "GET",
url: `${请求地址}`,
headers: {
'Authorization': ${token}
},
responseType: 'blob'
}).then(res => {
// 请求成功后处理流
if(res.status === 200) {
const blob = new Blob([res.data])
const downloadElement = document.createElement('a');
const href = window.URL.createObjectURL(blob); //创建下载的链接
downloadElement.href = href;
downloadElement.download = '自定义文件名.xlsx'; //下载后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //点击下载
document.body.removeChild(downloadElement); //下载完成移除元素
window.URL.revokeObjectURL(href); //释放掉blob对象
}
});
获取文件流并处理成 JSON
const read = new FileReader();
read.readAsText(e.response.data, 'utf-8');
read.onload = (data) => {
const res = JSON.parse(data.currentTarget.result)
that.$message.error(res.msg);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程