angularjs设置请求头信息的三种方法
1、方法一单个请求分别进行请求头设置
该方法的优点是每个请求都可以设置不同的请求头,缺点是每个请求都需要单独设置,增加代码量和重复代码
2、第二种设置请求头信息的方式就是在$httpProvider.defaults.headers属性上直接配置
angular.module('myApp', [])
.config(function($httpProvider) {
$httpProvider.defaults.headers.common = { 'header' : 'value' }
})
$httpProvider.defaults.headers有common、get、post、put等s属性。因此可以在不同的http请求上面添加不同的头信息,common是指所有的请求方式。
这种方式添加请求头的优势就是可以给不同请求方式统一添加请求头信息,缺点就是不能为某些请求添加个性化头信息。
3、第三种设置请求头信息的方法是使用拦截器$httpProvider.interceptors。
也就是为请求注册一个拦截器。首先定义一个服务
myModule.factory('token', function($rootScope, $cookies){
return {
request: function(config){
config.headers = config.headers || {};
if($cookies.get('token')){
config.headers.authorization = $rootScope.urlPath + $cookies.get('token');
}
return config;
},
responseError: function(response){
// ...
}
};
})
然后把上面定义的服务注册到$httpProvider.interceptors中。
.config(function($httpProvider){
$httpProvider.interceptors.push('authInterceptor');
})
这样,对于每次请求,不论是get还是post、put。我们都会在请求头信息中加入authorization属性。这种方式在处理验权、授权方面很有用的。但是确定就是不能够为特定的请求方式添加请求头信息