Я создаю .pdf в ASP.NET MVC и отправляю его в службу Angular 5. Требуется, чтобы он открывался в новой вкладке без загрузки.
Когда генерируется .pdf, я отправляю его во внешний интерфейс как FileResult
, содержащий массив byte
и "application/pdf"
тип содержимого.
Этот ответ указал мне на следующее решение:
getPdf(): void {
let newTab = window.open(); //opens new tab immediately to avoid popup blocking
this.pdfService.getPdf().subscribe(res => {
var fileURL = URL.createObjectURL(res); //Blob from the backend
newTab.location.href = fileURL;
});
}
Это решение работает в Chrome и Mozilla, но не в Edge . Когда я пробую функциональность в Edge, открытая вкладка никогда не показывает содержимое. Кроме того, я получаю следующую ошибку в консоли:
[ошибка объекта]: {описание: «Отказано в доступе», сообщение:
«Отказано в доступе», номер: -2146828218, стек: «Ошибка: разрешение
отказано в анонимной функции (eval код: 312: 13) в
SafeSubscriber.prototype .__ tryOrUnsub (электронный код: 244: 13) в
SafeSubscriber.prototype.next (электронный код: 191: 17) в
Subscriber.prototype._next (электронный код: 132: 9) в
Subscriber.prototype.next (электронный код: 96: 13) в
MapSubscriber.prototype._next (электронный код: 88: 9) в
Subscriber.prototype.next (электронный код: 96: 13) в
FilterSubscriber.prototype._next (электронный код: 92: 13) в
Subscriber.prototype.next (электронный код: 96: 13) в
MergeMapSubscriber.prototype.notifyNext (электронный код: 156: 13) "}