你好,JavaScript大师,
我需要一个使用XMLHttpRequest (带有responseType="blob")的文件下载功能,它可以在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();
它在所有主要浏览器中都能正常工作,但在当前版本(9.x)的Safari中却不起作用。我将得到一个“未能加载资源:帧加载中断”。通常下载是一个压缩文件,但我也尝试设置“application/octet”。
我有一个要求:我需要知道什么时候在客户端下载已经完成,所以使用iframe是没有选择的(我猜)。
我感谢您给我提示,如何使用XHR (没有Flash)在Safari中下载文件。
谢谢,克里斯
发布于 2016-03-16 08:06:33
https://stackoverflow.com/questions/35853251
复制相似问题