Javascript “访问被拒绝”尝试下载二进制文件流时出现异常

Javascript “访问被拒绝”尝试下载二进制文件流时出现异常,javascript,internet-explorer,xmlhttprequest,download,blob,Javascript,Internet Explorer,Xmlhttprequest,Download,Blob,我在代码中接收到XmlHttpRequest的响应,这是一个文件的二进制流。响应具有正确的大小和mimetype。我想通过发出保存文件的典型浏览器提示,将此文件下载到磁盘。我有下面的脚本,它在Chrome中运行得非常好。但它对IE来说是失败的 var url = /my_rest_url/; var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.responseType = "blob"; xhr.onreadystat

我在代码中接收到XmlHttpRequest的响应,这是一个文件的二进制流。响应具有正确的大小和mimetype。我想通过发出保存文件的典型浏览器提示,将此文件下载到磁盘。我有下面的脚本,它在Chrome中运行得非常好。但它对IE来说是失败的

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及以上版本的支持,如果有,我真的会感觉更好,摆脱它们,以一种“老派”的方式实现这一点。

您是否遇到了相同的问题?您还应该提到您正在使用或测试的IE版本。@JeremyJStarcher是的,这是同一来源政策问题。对象url类似于“blob:http%3A//localhost%3A”。但是,由于其他浏览器允许这样做,我认为这并不是违反政策,而是IE中的一个限制。我正在测试IE10。你有什么想法吗?谢谢虽然这是关于画布的,但它可能与。。。