Safari 9 XMLHttpRequest Blob 文件下载
Safari 9 XMLHttpRequest Blob file download
你好JavaScript大师们,
我需要一个使用 XMLHttpRequest(响应类型="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 中却不行。
我会得到一个 "Failed to load resource: Frame load interrupted"。通常下载是一个 zip 文件,但我也尝试设置 "application/octet-stream".
我有一个要求:我需要知道客户端何时完成下载,因此无法使用 iframe(我猜)。
感谢您提供有关如何使用 XHR(无 Flash)在 Safari 中下载文件的任何提示。
谢谢,
克里斯
简单回答:
没有解决方案!
另请参阅:https://forums.developer.apple.com/message/119222
感谢Safari...我的新IE6差不多
你好JavaScript大师们,
我需要一个使用 XMLHttpRequest(响应类型="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 中却不行。 我会得到一个 "Failed to load resource: Frame load interrupted"。通常下载是一个 zip 文件,但我也尝试设置 "application/octet-stream".
我有一个要求:我需要知道客户端何时完成下载,因此无法使用 iframe(我猜)。
感谢您提供有关如何使用 XHR(无 Flash)在 Safari 中下载文件的任何提示。
谢谢, 克里斯
简单回答: 没有解决方案!
另请参阅:https://forums.developer.apple.com/message/119222
感谢Safari...我的新IE6差不多