В моем бэкэнд-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?
Спасибо