Как заставить перехватчик $http реагировать только на заданные шаблоны?
Например, я хотел бы, чтобы перехватчик обрабатывал каждый запрос «/api/*» и оставлял другие запросы в покое.
Как заставить перехватчик $http реагировать только на заданные шаблоны?
Например, я хотел бы, чтобы перехватчик обрабатывал каждый запрос «/api/*» и оставлял другие запросы в покое.
Вы можете отфильтровать URL-адрес в функциях успеха или отклонения как в запросе, так и в ответе.
Допустим, вам нужно обработать ошибки для запросов и ответов для URL-адресов, начинающихся с «math/».
Вот ваш перехватчик.
$httpProvider.interceptors.push(function($q, mathError) {
return {
requestError: function(rejection){
mathError.anyError(rejection);
return $q.reject(rejection);
},
responseError: function(rejection){
mathError.anyError(rejection);
return $q.reject(rejection);
}
};
});
Вот ваша фабрика, где вы ее обрабатываете
myApp.factory('mathError', function(){
return {
anyError: function(rejection){
if (rejection.config.url.substr(0, 5) === "math/") {
console.log("Only Math errors are handled here");
//Do whatever you need here
}
}
});
config
(https://docs.angularjs.org/api/ng/service/$http#usage)request
и решить, следует ли предпринимать какие-либо действия. - person Claies   schedule 13.10.2015