需要加token验证的接口返回文件流下载

没有加token之前,下载文件用的是a标签,直接下载。

现在要求是需要在header中加入token。

 getDownload(urls, fileName) {
var url = urls;
var xhr = new XMLHttpRequest();
xhr.open("get", url, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("access-token", store.state.token.token);
xhr.send();
xhr.responseType = "blob"; // 返回类型blob
xhr.onload = function() {
if (this.status === 200) {
let a = document.createElement("a");
let blob = new Blob([this.response], {
type: "text/csv;charset=GBK;"
});
let objectUrl = URL.createObjectURL(blob);
a.setAttribute("href", objectUrl);
a.setAttribute("download", fileName + ".csv");
a.click();
} else {
alert("出现了未知的错误!");
}
};
},

如图所示,最后解决

上一篇:Mysql学习笔记(八)由触发器回顾外键约束中的级联选项


下一篇:SpringMVC(Springboot)返回文件方法