2016-09-15 2 views
1

Я не могу вставлять blob-url в формате PDF в IE 11/Edge. Существует проблема CORS, и IE дает «Access Denied». Из моих исследований по SO я понял, что это связано с присущими IE ограничениями безопасности. Мой вопрос заключается в том, есть ли какой-либо другой способ принятия ответа на данные о блобе URL-адреса из службы REST и отображения его встроенного в браузер. Я хочу избежать использования сторонних библиотек. Возвращается службы, как показано ниже:Как успешно внедрить ответ blob PDF в IE11/Edge

function getTest(id) { 
     miEService.get(id) 
       .then(function (response) {       
         var fileUrl = URL.createObjectURL(response.data); 
         $scope.pdfData = $sce.trustAsResourceUrl(fileUrl);       
       }); 


get: function (id) { 
     var config = { 
      headers: { 
       accept: 'application/pdf' 
      } 
      , responseType: 'blob' 

     } 
     return $http.get(miEnv.services.eApi + '?$filter=id eq' + 
      ' ' + id, config); 

Наконец внутри HTML дисплей находится ниже -

<object id="pdf" data={{$ctrl.pdfData}} type="application/pdf" width="100%" height="100%" alt="pdf" class="view-pdf_document"> 

ответ

0

Если служба остальное возвращает двоичные данные в формате PDF, можно просто вставляйте URL-адрес на своей странице как iframe, а не сам бинарный контент. Он должен сделать pdf. Если нет, у меня был успех в прошлом, когда у меня была ссылка в формате pdf, и когда вы нажимаете на ссылку, она открывает запрос к сервису rest на новой вкладке. Если проблема заключается в том, что вы не хотите, чтобы служба остатка отображалась в URL-адресе на странице, вам может потребоваться прокси-запрос через ваш собственный сервер.

+0

Спасибо! Я обновил свой вопрос с помощью кода. Я пытаюсь использовать URL.createObjectURL(), чтобы создать URL-адрес из ответа, который я возвращаю из службы, и затем отображать его. Но IE этого не позволяет. Я пытаюсь выяснить другой способ взять blob и отобразить его вместо создания URL-адреса blob. – sdd

+0

@sdd Я не имею в виду конвертировать, если, я имею в виду, установить URL-адрес рамки для остальных URL службы – MorningDew

Смежные вопросы