Подтвердить что ты не робот

Отображение двоичного файла (pdf) в IE 11

Я пытаюсь отобразить двоичный файл, используя метод, предложенный в этом сообщении AngularJS: Показать blob (.pdf) в приложении angular. Это хорошо работает в Chrome и FF, но IE 11 дает мне "Error: Access Denied". Кто-нибудь знает, имеет ли он какое-то отношение к объекту Blob и может указать мне в правильном направлении? Вот мой код js:

$http.get(baseUrl + apiUrl, { responseType: 'arraybuffer' })
          .success(function (response) {                  
             var file = new Blob([response], { type: 'application/pdf' });
             var fileURL = URL.createObjectURL(file);
             $scope.pdfContent = $sce.trustAsResourceUrl(fileURL);
           })
           .error(function () {                        
           });

и мой html:

<div ng-controller="PDFController" class="modal fade" id="pdfModal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg">
    <div class="modal-content" onloadstart="">
        <object data="{{pdfContent}}"  type="application/pdf" style="width:100%; height:1000px" />
    </div>
</div>

4b9b3361

Ответ 1

IE 11 блокирует отображение blob, вам нужно использовать следующее:

                    var byteArray = new Uint8Array(someByteArray);
                var blob = new Blob([byteArray], { type: 'application/pdf' });
                if (window.navigator && window.navigator.msSaveOrOpenBlob) {
                    window.navigator.msSaveOrOpenBlob(blob);
                }
                else {
                    var objectUrl = URL.createObjectURL(blob);
                    window.open(objectUrl);
                }