vue使用axios接收后台返回的文件流下载文件
后台接口返回的数据代码部分:this.axios({method: "get",headers: {"content-type": "application/json", // 默认值Authorization: "Bearer " + sessionStorage.getItem("access_token"),},url: 'your_URL',params: {'name':'Jack'},
·
后台接口返回的数据
代码部分:
this.axios({
method: "get",
headers: {
"content-type": "application/json", // 默认值
Authorization: "Bearer " + sessionStorage.getItem("access_token"),
},
url: 'your_URL',
params: {'name':'Jack'},
responseType: "blob",
})
.then(function (res) {
let blob = new Blob([res.data]); // { type: "application/vnd.ms-excel" }
let url = window.URL.createObjectURL(blob); // 创建一个临时的url指向blob对象
// 创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
let a = document.createElement("a");
a.href = url;
a.download = "表格.xlsx";
a.click();
// 释放这个临时的对象url
window.URL.revokeObjectURL(url);
})
.catch(function (res) {
console.log("error", res);
});
注意: responseType: "blob"必须写 不然下载下来的excel是损坏文件打不开。
更多推荐
已为社区贡献1条内容
所有评论(0)