我不想在每个http请求中传递Bearer令牌,因此为了实现自动化,我执行了以下操作:
angular.module('projectApp').run(function ($http, $rootScope, $location) {
$http.defaults.headers.common.Authorization = 'Bearer ' + localStorage.getItem('token');
}
但是当有一个页面不需要身份验证时,标题也会被传递。有一种方法可以选择不通过此标题(但默认情况下将其传递)?
答案 0 :(得分:0)
您可以使用interceptors选择添加授权标头的请求,如下所示:
配置:
app.config([ '$httpProvider', function($httpProvider) {
$httpProvider.interceptors.push('APIInterceptor');
} ]);
服务:
app.service('APIInterceptor', [function() {
var service = this;
service.request = function(config) {
config.headers.YOUR_HEADER= YOUR_HEADERS_VALUE;
return config;
};
}]);
答案 1 :(得分:0)
您可以将此标头设置为未定义的特定请求,如下所示:
$http.get('/someUrl', {headers: { 'Authorization ': undefined }}).then(successCallback, errorCallback);