0

$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;
        }
    };
})

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

4

1 回答 1

0

您必须按照文档 responseError 使用 responseError 处理程序:拦截器在前一个拦截器抛出错误或以拒绝解决时被调用。

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

            return $q.reject(rejection);
        }
    };
}]);
于 2015-08-14T01:48:44.307 回答