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

How to make browser download file from xhr request

本文关键字:请求 下载 文件 xhr 何使 浏览器      更新时间:2023-09-26

我正在向服务器发送xhr请求以下载文件。我在请求中包含了授权令牌,这样我就不能在不使用xhr的情况下下载文件。当收到来自服务器的响应时,我应该采取什么步骤使浏览器下载文件?服务器应该包含哪些标头?

这是一段适合我的代码。我用它来测试,所以它不是最干净的方式,我想。但是它可以显示图片。

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("授权",令牌);

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