2017-10-10 65 views
0

如何在spring中将anglar 2应用程序拦截“401授权”,然后将用户重定向到登录页面?截取角度为2的http状态代码401

例如,如果我没有连接,我尝试访问一个页面。拦截者必须要求我连接。而且我希望拦截器能够侦听服务器返回的所有401状态。

+0

使用角[HTTP拦截器(https://rahulrsingh09.github.io/AngularConcepts/services) –

+0

你可以用'NG2-interceptors'。 https://github.com/voliva/angular2-interceptors – hrdkisback

+0

认为你的答案。 – Drame

回答

0

如果你不想使用任何外部包,你可以简单地创建自己的休息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(...) 
}