Внутри JavaScript я делаю XMLHttpRequest сервером, который генерирует PDF и возвращает данные PDF. В Chrome я могу открыть эти данные в новом окне/вкладке следующим образом:
window.open( URL.createObjectURL(RETURNED_DATA) );
где RETURNED_DATA - это фактические данные, возвращаемые из XHR.
В IE10 (и я предполагаю, что старые версии IE) я получаю "Permission denied" при попытке window.open()
с объектом DOMString
, возвращенным из URL.createObjectURL()
Я пробовал различные версии, такие как открытие нового окна перед отправкой XHR и обновление нового местоположения окна в обратном вызове XHR и открытие нового окна с помощью простого HTML файла, который просто содержит XHR, чтобы он может обновить его собственное местоположение в обратном вызове XHR. Все эти изменения работают в Chrome, но приводят к ошибкам "Разрешения на отказ" в IE10.
Мое лучшее предположение заключается в том, что оно вызвано политикой того же происхождения. При регистрации объекта DOMString
на консоли в Chrome против IE я заметил, что Chrome добавляет строку с протоколом и хостом, поэтому blob:http://localhost:8080/BLOB_DATA
, тогда как IE10 просто имеет blob:BLOB_DATA
.
Любые идеи по решению этой проблемы в IE?