我正在向服务器发送xhr
请求以下载文件。我将授权令牌包含在请求中,因此我无法在不使用xhr
的情况下下载文件。当收到服务器的响应时,我应采取哪些步骤使浏览器下载文件?服务器应包含哪些标头?
答案 0 :(得分:5)
这是一段适合我的代码。我正在使用它进行测试,所以它不是我猜的最干净的方式。但它可以显示一幅画面。
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var downloadUrl = URL.createObjectURL(xhttp.response);
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
a.href = downloadUrl;
a.download = "";
a.click();
}
};
xhttp.open("GET", fileUrl, true);
xhttp.responseType = "blob";
xhttp.setRequestHeader('Authorization', token);
xhttp.send();
这件作品并不重要,在我的情况下我只需要它:
xhttp.setRequestHeader('Authorization',token);