2015-12-28 65 views
1

我要打電話的API,並得到響應的方法。一個API返回一個圖像。 Content-Type:application/octet-stream 如果我設置responseType:「blob」,它工作正常。Angularjs顯示圖像斑點

$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); 
     } 

創建BLOB但圖像沒有在html顯示。這是HTML代碼

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

能否請你告訴我這個

+0

是否'$ rootScope.ImageSrc'有一個像'數據的標題簽名:圖像/ PNG; base64'? – IzumiSy

+0

我可以問爲什麼?我認爲前者(和工作)方法看起來更正確 – Phil

+0

@IzumiSy我建議你看看彌補'URL.createObjectURL' – Phil

回答

-1

嘗試把這樣的SRC:

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

和代替PNG把圖像的類型

+0

我沒有工作:(我的情況也服務器端返回一個PNG圖像的任何想法 – mahedhanu

+0

添加數據-NG-SRC =「之後。?‘數據:圖像/ PNG; BASE64,’ + {{ImageSrc}}「它給我500內部服務器錯誤。 – mahedhanu

-1

圖像/ PNG;的base64

其設爲您的響應類型。