您應該爲此使用interceptor
。下面是從AngularJS文檔的推薦方式:
// register the interceptor as a service
$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
return {
// optional method
'request': function(config) {
// do something on success
return config;
},
// optional method
'requestError': function(rejection) {
// do something on error
if (canRecover(rejection)) {
return responseOrNewPromise
}
return $q.reject(rejection);
},
// optional method
'response': function(response) {
// do something on success
return response;
},
// optional method
'responseError': function(rejection) {
// do something on error
if (canRecover(rejection)) {
return responseOrNewPromise
}
return $q.reject(rejection);
}
};
});
$httpProvider.interceptors.push('myHttpInterceptor');
所有你需要做的是落實'request'
方法,因爲所有的方法都是可選的。提供的配置對象是一個角度爲$http
的配置對象,它包含一個headers
屬性。你應該能夠很輕鬆地添加你的頭到這一點:
config.headers.myHeader = myValue;
return config;
你可以抓住在你的配置博客的$httpProvider
簡單地將其添加到參數列表:
angular
.module('frontend', [
...
])
.config(function($routeProvider, $httpProvider, $provide){
$routeProvider
.when(...)
// register the interceptor as a service
$provide.factory('myHttpInterceptor', function() {
return {
// optional method
'request': function(config) {
config.headers.myHeader = myValue;
return config;
},
};
});
$httpProvider.interceptors.push('myHttpInterceptor');
});
啓動(https://docs.angularjs.org/api/ng/provider/$httpProvider) – charlietfl