截取角度为2的http状态代码401
问题描述:
如何在spring中将anglar 2应用程序拦截“401授权”,然后将用户重定向到登录页面?截取角度为2的http状态代码401
例如,如果我没有连接,我尝试访问一个页面。拦截者必须要求我连接。而且我希望拦截器能够侦听服务器返回的所有401状态。
答
如果你不想使用任何外部包,你可以简单地创建自己的休息http服务。
您需要做的就是创建一个扩展Http的服务类。
例子:
export class RestHttp extends Http {
constructor(backend: ConnectionBackend) {
super(backened, new RequestOptions (...))
}
get(url: string) {
return this.catchError(super.get(url));
}
(delete, post, put) (...)
private catchError(res: Observable<Response>) {
return res.catch((err) => {
if (err.status >= 400) {
*your logic*
}
return Observable.throw(err);
});
}
现在,你必须为它提供你的模块里面。事情是这样的:
app.module
(...)
providers: [
{provide: Http, useFactory: httpFactory, deps: [...]
(...)
export function httpFactory(backend: XHRBackend) {
return new RestHttp(...)
}
使用角[HTTP拦截器(https://rahulrsingh09.github.io/AngularConcepts/services) –
你可以用'NG2-interceptors'。 https://github.com/voliva/angular2-interceptors – hrdkisback
认为你的答案。 – Drame