如何从$ httpProvider拦截器的'响应'函数中抛出错误

时间:2017-05-05 07:38:01

标签: javascript angularjs angular-http-interceptors

我正在以角度制作一个http拦截器,我想从response拦截器的$httpProvider发出抛出错误。

根据文件:

  

response:使用http响应对象调用拦截器。该函数可以自由修改响应对象或创建新对象。该函数需要直接返回响应对象,或者作为包含响应或新响应对象的promise。

     

responseError:拦截器在前一个拦截器时被称为   提出错误或通过拒绝解决。

我想在上面的引用中做大胆的部分,以便状态为200的响应(我在那里有一个条件)被路由到responseError我将处理错误。 不返回响应会抛出以下错误:

Cannot read property 'data' of undefined

我不想返回回复,但希望将其传递给下一个处理程序,即responseError

我该怎么做? 我希望我说清楚。 感谢。

更新(以下代码):

app.config(['$httpProvider', function($httpProvider) {
    interceptor.$inject = ['$q', '$rootScope'];
    $httpProvider.interceptors.push(interceptor);

    function interceptor($q, $rootScope) {
        return {
            response: response,
            responseError: responseError
        };

        function response(response) {
            if (response.data.rs == "F") {
                // I want to route it responseError -->
            } else {
                return response;
            }
        }

        function responseError(response) {
            // I want to handle that error here
        }
    }

}]);

0 个答案:

没有答案