'访问被拒绝'尝试下载二进制文件流的异常

时间:2014-08-08 22:14:31

标签: javascript internet-explorer xmlhttprequest download blob

我的代码中收到了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 /我知道blobcreateObjectURL相对较新。即使他们得到了IE10及以上版本的支持,我也会感觉更好,摆脱这些并实现这个“老学校”#39;方式,如果有的话。

0 个答案:

没有答案