2015-12-28 4 views
1

У меня есть метод вызова API и получения ответов. Один api возвращает изображение. Content-Type: application/octet-stream Если я задал responseType: «blob», он работает нормально.Angularjs показ изображения blob

$http({ 
      url: apiConstants.BASE_URL + 'login', 
      method: "POST", 
      responseType: "blob", 
      data: { 
       "Req": req 
      }, 
      headers: { 
       'X-Username': aUser, 
       'X-Password': aPass, 
      }, 
     }).success(function(data, status, headers, config) { 
       var URL = $window.URL || $window.webkitURL; 
       $rootScope.ImageSrc = URL.createObjectURL(data); 
     } 

Но я хочу, чтобы удалить responseType: «блоб» из запроса и пытается создать блоб следующим способом

$http({ 
      url: apiConstants.BASE_URL + 'login', 
      method: "POST", 
      data: { 
       "Req": req 
      }, 
      headers: { 
       'X-Username': aUser, 
       'X-Password': aPass, 
      }, 
     }).success(function(data, status, headers, config) { 
       var blob = new Blob(
       [data], 
       { 
        type: 'application/octet-stream' 
       } 
      ); 

       var URL = $window.URL || $window.webkitURL; 
       $rootScope.ImageSrc = URL.createObjectURL(blob); 
     } 

Но изображение не отображается в HTML. это HTML-код

<img class="img-responsive empImg" id="empImage" data-ng-src="{{ImageSrc}}" /> 

Не могли бы вы мне посоветуете по этому

+0

Имеет ли '$ rootScope.ImageSrc' подпись подписи, например' data: image/png; base64'? – IzumiSy

+0

Могу ли я спросить, почему? Я думаю, что прежний (и рабочий) метод выглядит более корректным. – Phil

+0

@IzumiSy Я предлагаю вам найти документацию для 'URL.createObjectURL' – Phil

ответ

-1

попытки поставить СРК так:

<img class="img-responsive empImg" id="empImage" data-ng-src="'data:image/png;base64,'+{{ImageSrc}}" /> 

и вместо PNG поставить тип изображения

+0

не работает для меня :(в моем случае также серверная сторона возвращает png-изображение. Любая идея? – mahedhanu

+0

После добавления данных-ng-src = "'data: image/png; base64,' + {{ImageSrc}} "это дает мне 500 внутренних ошибок сервера. – mahedhanu

-1

image/png; base64

Установите это как свой тип ответа.

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