AngularJS中$ http的故障转移错误拦截器

时间:2014-02-11 13:31:22

标签: angularjs promise interceptor

是否可以为$ http服务实现“responseError”拦截器,只有在给定的http承诺的其他地方没有定义特定的失败处理程序时才会触发?

因此,如果响应中出现错误,则以下表达式$http.get(...).success(...)将在拦截器中执行某些代码,而后续的$http.get(...).success(...).error(...)则不会。

1 个答案:

答案 0 :(得分:1)

你可以使用装饰者:

app.config(function($provide) {
    $provide.decorator('$exceptionHandler', function($delegate, $injector) {
        return function $broadcastingExceptionHandler(ex, cause) {
            $delegate(ex, cause);
            $injector.get('$rootScope').$broadcast('exception', ex, cause);
        }
    });
});

此示例将捕获所有异常,但您可以检查错误并正确处理它。