$http インターセプターが特定のパターンにのみ反応するようにするにはどうすればよいですか?
たとえば、インターセプターがすべての「/api/*」リクエストを処理し、他のリクエストはそのままにしておきたいと思います。
$http インターセプターが特定のパターンにのみ反応するようにするにはどうすればよいですか?
たとえば、インターセプターがすべての「/api/*」リクエストを処理し、他のリクエストはそのままにしておきたいと思います。
リクエストまたはレスポンスの両方で、成功関数または拒否関数で URL をフィルタリングできます。
「math/」で始まる URL のリクエストとレスポンスのエラーを処理する必要があるとします。
これがインターセプターです。
$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
}
}
});