我想使用拦截器进行状态代码错误处理。例如,当我通过$route
加载模板并且我没有权限这样做时,我将从服务器发回403状态代码以及一些html数据,我想显示而不是最初请求的模板。这可能在'responseError'函数中的拦截器内吗?
'responseError': function(rejection) {
// do something on error EXAMPLE
if (canRecover(rejection.htmlData)) {
return responseOrNewPromise //here I want to add my server error html data and return that to the client instead of the originally requested data
}
return $q.reject(rejection);
}
我知道,我可以进行location.path更改,但我想保存额外的路由。
答案 0 :(得分:2)
来自ngRoute docs:
$ routeChangeError
如果任何解决承诺被拒绝,则广播。
app.run(function($rootScope){
$rootScope.$on('$routeChangeError',function(angularEvent,current,previous,rejection){
// console.log(rejection)
})
})