1
發送瀏覽器下載文件我向請求服務器上傳xhr
下載文件。我在請求中包含授權令牌,因此我無法使用xhr
下載文件。在收到服務器響應時,我應該採取什麼措施讓瀏覽器下載文件?服務器應包含哪些標題?如何從xhr請求
發送瀏覽器下載文件我向請求服務器上傳xhr
下載文件。我在請求中包含授權令牌,因此我無法使用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( '授權',令牌);
此鏈接可以是有用,以及:Sending and Receiving Binary Data
可以充塞服務器響應到數據URL,把它放在一個''並引發點擊。請注意,'download'屬性[不太支持](http://caniuse.com/#feat=download)。或者,您可以使用正常表單提交(而非XHR),將令牌發送給隱藏輸入而不是請求頭。 – Amadan
@Amadan,謝謝。這些是唯一的選擇,對嗎? –
我不會那麼說 - 但我能想到的只有這些。 – Amadan