2014-04-17 69 views
5

我正在考慮爲$ http服務添加一個默認標頭,該值是在用戶認證後生成的訪問令牌。

module.config('$routeProvider', '$locationProvider', '$httpProvider'){ 
    $httpProvider.defaults.headers.post['XSRF-AUTH'] = 
     "some accessToken to be generated later"; 
} 

問題是,該config()塊時角自舉其核心部件施加。有沒有辦法動態改變$ĥttpProvider

回答

14

您可以在運行時通過$ http對象而不是$ httpProvider更改默認標頭。例如,你可以做以下的一個配置塊之外:

$http.defaults.headers.post['XSRF-AUTH'] = "access token"; 

退房的$ HTTP API文檔的更多細節http://docs.angularjs.org/api/ng/service/$http#setting-http-headers

+0

這實際上工作,很榮幸給你。 –

+0

這很好,唯一的問題就是放在哪裏。你可以把它放在模塊負載中,但是如果你有多個模塊可能或不可能被裝載在一起。當我在加載angular.js後將此代碼放在頁面上時,我得到「$ http未定義」 –

+0

Sonic Soul,不確定是否理解您的問題,但您需要將它放在可以使用依賴注入獲取的地方對$ http的引用(即控制器,運行,服務等)。你把它放在哪裏取決於你的應用程序。 – Leo