У меня есть приложение angularjs, в котором у меня есть перехватчик, который добавляет токен авторизации в заголовок каждого запроса.Как пропустить перехватчик angularjs для запроса HTTP?
Однако, где-то в приложении мне нужно использовать и внешний API, где перехватчик разрушает его, поскольку он добавляет этот заголовок авторизации, который неприемлем для этого внешнего поставщика API. Как я могу заставить angularjs HTTP пропускать перехватчик, только в этом конкретном случае?
Перехватчик код ниже:
app.factory('authInterceptorService', ['$q', '$injector', '$location', 'localStorageService', function ($q, $injector, $location, localStorageService) {
var authInterceptorServiceFactory = {};
var $http;
var _request = function (config) {
config.headers = config.headers || {};
var authData = localStorageService.get('authorizationData');
if (authData) {
//console.log("token: " + authData.token.substring(0, 10));
//console.log("user: " + authData.userName);
config.headers.Authorization = 'Bearer ' + authData.token;
}
return config;
}
var _responseError = function (rejection) {
var deferred = $q.defer();
if (rejection.status === 401) {
var authService = $injector.get('authService');
authService.refreshToken().then(function (response) {
_retryHttpRequest(rejection.config, deferred);
}, function() {
authService.logOut();
$location.path('/login');
deferred.reject(rejection);
});
} else {
deferred.reject(rejection);
}
return deferred.promise;
}
var _retryHttpRequest = function (config, deferred) {
console.log('retrying');
$http = $http || $injector.get('$http');
$http(config).then(function (response) {
deferred.resolve(response);
//console.log("success:" +response);
}, function (response) {
deferred.reject(response);
//console.log("error:" + response);
});
}
authInterceptorServiceFactory.request = _request;
authInterceptorServiceFactory.responseError = _responseError;
return authInterceptorServiceFactory;
}]);
добавить логику, чтобы пропустить добавление Идента заголовка на основе 'config.url' – harishr
Я думаю, вы должны принять добыча на этом посту: http://stackoverflow.com/questions/23696202/set-defaults-header-on-angularjs-but-dont-use-it-on-one-specific-request –