2017-10-10 101 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(...) 
}