【发布时间】:2017-03-29 20:11:44
【问题描述】:
有没有什么方法可以用 Angular 2 创建一个 http 拦截器,让你根据错误重定向到某些路由?例如,当服务响应 404 时转到 /not-found 路由,当它响应 401/403 时转到 /unauthorised 路由。
我尝试将路由器注入我的服务并在错误处理方法中使用它,但它只是抛出此错误
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);
}
};
}
【问题讨论】:
标签: angular typescript angular2-routing angular2-services