有没有办法用Angular 2创建一个http拦截器,你可以根据错误重定向到某些路由吗?例如,当服务用404响应时转到/ not-found路由,当用401/403响应时转到/未授权路由。
我试图将路由器注入我的服务并在错误处理方法上使用它,但它只是抛出了这个错误
Unhandled Promise rejection: Provider parse errors: Cannot instantiate cyclic dependency!
我以前能够像AngularJS那样做:
function authInterceptor ($q, $injector) {
return {
request: function (request) {
return request;
},
requestError: function (request) {
return $q.reject(request);
},
response: function (response) {
return response;
},
responseError: function (response) {
if (response.status === 401 || response.status === 403) {
$injector.get('$state').go('unauthorised');
} else if (response.status === 404) {
$injector.get('$state').go('notFound');
}
return $q.reject(response);
}
};
}