0

$http インターセプターが特定のパターンにのみ反応するようにするにはどうすればよいですか?

たとえば、インターセプターがすべての「/api/*」リクエストを処理し、他のリクエストはそのままにしておきたいと思います。

4

1 に答える 1

1

リクエストまたはレスポンスの両方で、成功関数または拒否関数で 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
                     }
                }            

});
于 2015-10-13T18:16:47.720 に答える