内部JavaScript我正在向服务器发出XMLHttpRequest,生成PDF并返回PDF数据。在Chrome中,我可以在新窗口/标签中打开此数据,如下所示:
window.open( URL.createObjectURL(RETURNED_DATA) );
其中RETURNED_DATA是从XHR返回的实际数据。
在IE10中(我假设IE的旧版本),在尝试使用window.open()
返回的DOMString
对象URL.createObjectURL()
时,我收到“权限被拒绝”
我尝试了各种版本,例如在发送XHR之前打开新窗口并在XHR回调中更新新窗口的位置,并打开一个包含XHR的简单HTML文件的新窗口,以便它可以在XHR回调中更新自己的位置。所有这些变体都适用于Chrome,但导致IE10中出现“权限被拒绝”错误。
我最好的猜测是它是由同源策略引起的。在Chrome与IE中将DOMString
对象记录到控制台时,我注意到Chrome使用协议和主机预先设置了字符串blob:http://localhost:8080/BLOB_DATA
,而IE10只有blob:BLOB_DATA
。
如何在IE中解决此问题?
答案 0 :(得分:1)
对于IE 10和11,您可以使用msSaveOrOpenBlob
window.navigator.msSaveOrOpenBlob(blob, fileName);