Откройте приложение / октет-поток (pdf) в Internet Explorer с помощью Javascript - PullRequest
0 голосов
/ 09 января 2019

В моем бэкэнд-API я в потоковом режиме в формате PDF в application / octet-stream .

В интерфейсе для любого браузера я просто создаю BLOB-объект и открываю его после:

var request = new XMLHttpRequest();
request.open("GET", url, true);
request.setRequestHeader("Authorization", "Bearer " + token);
request.responseType = "arraybuffer";
request.send();

request.onload = function () {
    var blob = new Blob([this.response], { type: blobType }),newUrl = URL.createObjectURL(blob);
    window.open(newUrl, "_blank", "menubar=yes,resizable=yes,scrollbars=yes");

И это работает.

Internet Explorer, однако, не поддерживает blob, и я должен открыть его с помощью:

window.navigator.msSaveOrOpenBlob(blob);

Появится запрос обычного сохранения или открытия файла в IE. Но я бы хотел открыть его прямо в новом окне.

Я пытался использовать:

...
request.responseType = "application/pdf";
...
window.open("data:application/pdf," + this.response, "_blank", "menubar=yes,resizable=yes,scrollbars=yes");

и я тоже попробовал

window.open("data:application/pdf;base64," + this.response, "_blank", "menubar=yes,resizable=yes,scrollbars=yes");

Но это не работает.

Кто-нибудь из вас знает, как открыть PDF? какой тип ответа мне нужно использовать? а потом как его открыть с помощью window.open? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...