如何从xhr请求制作浏览器下载文件

Max*_*kyi 2 javascript xmlhttprequest

我正在向xhr服务器发送下载文件的请求.我将授权令牌包含在请求中,因此我无法在不使用的情况下下载文件xhr.当收到服务器的响应时,我应采取哪些步骤使浏览器下载文件?服务器应包含哪些标头?

tar*_*ius 6

这是一段适合我的代码.我正在使用它进行测试,所以它不是我猜的最干净的方式.但它可以显示一幅画面.

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();
Run Code Online (Sandbox Code Playgroud)

这篇文章并不重要,我只是需要它在我的情况下:

xhttp.setRequestHeader('Authorization',token);

此链接也很有用:发送和接收二进制数据