角度拦截器不被拒绝

时间:2015-07-06 11:13:19

标签: angularjs angular-http-interceptors

$resource调用了一些API。如果它返回一些标志,则请求应降至.catch()

$resource('api/').get(...).$promise.catch();部分

我的拦截器不会触发该调用。它无论如何都会调用.then

拦截器代码:

.factory('SomeHTTPInterceptor', function($q) {
    return {
        response: function(response) {
            if (response.data.someFlag) {
                return $q.reject(response);
            }
            return response;
        }
    };
})

如何获得相同的响应,但是在catch部分没有检查每个请求中的错误?

1 个答案:

答案 0 :(得分:0)

您必须按照doc使用responseError处理程序 responseError:当前一个拦截器抛出错误或通过拒绝解决时,会调用拦截器。

.factory('SomeHTTPInterceptor', ['$q', function($q) {
    return {
        // optional method
        'responseError': function(rejection) {
            if (rejection.data.someFlag) {
                // do something
            }

            return $q.reject(rejection);
        }
    };
}]);