2015-08-26 5 views
5

Я получаю некоторые нечетные результаты при попытке открыть новое окно с URL-адресом blob в Windows Edge (20.10240.16384, который является версией в IE11 VM, предоставленной Microsoft).Windows Edge и открытие blob-url

var xhr = new XMLHttpRequest(); 
xhr.open('POST', sourceUrl, true); 
xhr.responseType = 'blob'; 

xhr.onload = function(e,form) { 
    if (this.status == 200) { 
     var blob = this.response; 
     var url = window.URL.createObjectURL(blob); 
     var w = window.open(url); 
    } 
} 

На линии

var w = window.open(url); 

Я получаю «Отказано в доступе» ошибка, которая выглядит, чтобы быть связаны с CORS, что имеет смысл немного, поскольку это технически не совпадает с доменом. Однако у BLOB-url нет технически домена?

Это ошибка в Edge? Или я делаю что-то не совсем правильно? Этот код работает в IE, Chrome и т. Д.

+0

любой удачи с этим? У меня есть такие ошибки, как это сообщалось о данных, созданных на самом клиенте. Мой google-fu еще не раскрыл решение ... –

+0

Я закончил переписывать его, чтобы не использовать URL-адреса blob. Так что нет, я еще не нашел исправления для этого. – Technicolour

+0

старый пост-но что вы использовали вместо blob-urls? – sdd

ответ

1

Я нашел решение как для IE, так и для Edge.

if (window.navigator && window.navigator.msSaveOrOpenBlob) { 
    window.navigator.msSaveOrOpenBlob(blob); 
} 
else { 
    var objectUrl = URL.createObjectURL(blob); 
     window.open(objectUrl); 
} 

Ссылка Here