Safari 9 XMLHttpRequest Blob 文件下载

Safari 9 XMLHttpRequest Blob file download

本文关键字:文件下载 Blob XMLHttpRequest Safari      更新时间:2023-09-26

Hello JavaScript gurus,

我需要在 Safari 9+ 中使用 XMLHttpRequest 的文件下载功能(带有 responseType="blob")。

目前我正在使用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文件,但我也尝试设置"应用程序/八位字节流"。

我有一个要求:我需要知道何时在客户端完成下载,因此无法使用 iframe (我猜)。

我很感谢任何关于如何使用XHR(无Flash)在Safari中下载文件的提示。

谢谢克里斯

简单的答案:没有解决方案!

另请参阅:https://forums.developer.apple.com/message/119222

谢谢野生动物园...我的新几乎IE6