是否可以为$ http服务实现“responseError”拦截器,只有在给定的http承诺的其他地方没有定义特定的失败处理程序时才会触发?
因此,如果响应中出现错误,则以下表达式$http.get(...).success(...)
将在拦截器中执行某些代码,而后续的$http.get(...).success(...).error(...)
则不会。
答案 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);
}
});
});
此示例将捕获所有异常,但您可以检查错误并正确处理它。