我的代码中收到了XmlHttpRequest
的响应,这是一个文件的二进制流。响应具有正确的大小和mimetype。我想通过发出保存文件的典型浏览器提示将此文件下载到磁盘。我有以下脚本在Chrome中完美运行。它虽然失败了。
var url = /my_rest_url/;
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = "blob";
xhr.onreadystatechange = function (e) {
if (xhr.readyState == xhr.DONE) {
var blob = xhr.response;
var objectUrl = URL.createObjectURL(blob);
window.open(objectUrl);
}
}
xhr.send();
在window.open()调用中发生故障,其中IE失败,并显示"访问被拒绝"。我已经研究了几个小时没有找到适合我的解决方案。我看到了一些建议,使用了隐藏的iframe'开始下载,但它没有为我解决。有没有人曾经在IE中做过这样的工作?很高兴得到一些想法。
ps /我知道blob
和createObjectURL
相对较新。即使他们得到了IE10及以上版本的支持,我也会感觉更好,摆脱这些并实现这个“老学校”#39;方式,如果有的话。