2015-09-17 112 views
1

發送瀏覽器下載文件我向請求服務器上傳xhr下載文件。我在請求中包含授權令牌,因此我無法使用xhr下載文件。在收到服務器響應時,我應該採取什麼措施讓瀏覽器下載文件?服務器應包含哪些標題?如何從xhr請求

+0

@Amadan,謝謝。這些是唯一的選擇,對嗎? –

+0

我不會那麼說 - 但我能想到的只有這些。 – Amadan

回答

2

這是一段適合我的代碼。我使用它進行測試,所以它不是我猜測的最乾淨的方式。但它可以顯示一張圖片。

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