2016-03-07 135 views
0

您好JavaScript的大師,Safari瀏覽器9的XMLHttpRequest的Blob文件下載

我需要使用XMLHttpRequest的文件下載功能(具有的responseType = 「斑點」),在Safari瀏覽器9+工作。

在我使用FileSaver.js這樣的時刻:

var xhr = new XMLHttpRequest(); 
 
xhr.open('GET', url, true); 
 
xhr.responseType = 'blob'; 
 
xhr.onreadystatechange = function() { 
 
    if (xhr.readyState == 4) { 
 
    // using FileSaver.js to save blob 
 
    saveAs(xhr.response, filename); 
 
    // notify download finished, resolve promise 
 
    defer.resolve(true); 
 
    } 
 
}; 
 
xhr.send();

這適用於所有的主流瀏覽器不錯,但不是在Safari瀏覽器的最新版本(9.x中)。 我會得到一個「無法加載資源:幀加載中斷」。通常下載是一個zip文件,但我也嘗試設置「application/octet-stream」。

我有一個要求:我需要知道什麼時候在客戶端完成下載,所以使用iframe是沒有選擇的(我猜)。

我很感激任何提示如何使用XHR(無Flash)在Safari中下載文件。

謝謝, 克里斯

回答