0

我添加errorHandlerInterceptor來處理錯誤,你看到如下:

(function() { 
    'use strict'; 

    angular 
     .module('rasool') 
     .config(httpConfig); 

    function httpConfig($httpProvider) { 

     $httpProvider.interceptors.push('errorHandlerInterceptor'); 
    } 
})(); 

,並在errorHandlerInterceptor我想從這樣的響應頭特定的標題:

(function() { 
    'use strict'; 

    angular 
     .module('rasool') 
     .factory('errorHandlerInterceptor', errorHandlerInterceptor); 

    function errorHandlerInterceptor ($q, toaster, $rootScope, $timeout) { 
     var service = { 
      responseError: responseError 
     }; 

     return service; 

     function responseError (response) { 

      var errorHeader = response.headers('X-app-alert'); 

      if(errorHeader) { 
       // do something 
      } 

      return $q.reject(response); 
     } 
    } 
})(); 

的問題是,errorHeader爲空,但是當我檢查的Chrome DevTools的響應頭,這個頭存在,並且有一個值,你可以在下面的截圖中看到:

enter image description here

UPDATE

所有這些部分都在網站運行正常,但我創建的HTML,JS和CSS文件副本創建ionic1應用程序,但是當我運行ionic serve命令來測試應用程序,我有這個問題。

+0

您確定在您嘗試訪問響應頭時,承諾已經解決嗎? – Anton

+0

非標準標題需要用[Access-Control-Expose-Headers]列出(https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers )。 – georgeawg

+0

@georgeawg,正如你在屏幕截圖中看到的那樣,響應頭中已經存在'X-app-alert',但角度不會得到這個頭 –

回答

0

你嘗試調用它像這樣:

var errorHeader = response.headers(); 

和errorHeader後應該是有你需要的數據的對象。