2016-04-01 16 views
0

こんにちは私は、angular2でhttpリクエストの後にグローバル401エラーを処理したいと思います。 BaseResponseOptionsクラスを拡張したいと思います。これは正しい方法ですか?BaseResponseOptions angular2グローバルエラーの処理

+0

http://stackoverflow.com/questions/35498456/what-is-httpinterceptor-equivalent-in-angular2/35499034#35499034のように見えます。 –

答えて

1

Httpクラス自体を拡張して、このようなエラーをグローバルに処理できます。この方法で、catch演算子を基礎となるリクエストで活用し、401エラーを捕捉することができます。

@Injectable() 
export class CustomHttp extends Http { 
    constructor(backend: ConnectionBackend, defaultOptions: RequestOptions) { 
    super(backend, defaultOptions); 
    } 

    request(url: string | Request, options?: RequestOptionsArgs): Observable<Response> { 
    console.log('request...'); 
    return super.request(url, options).catch(res => { 
     // do something 
    });   
    } 

    get(url: string, options?: RequestOptionsArgs): Observable<Response> { 
    console.log('get...'); 
    return super.get(url, options).catch(res => { 
     // do something 
    }); 
    } 
} 

と以下のように登録:

bootstrap(AppComponent, [HTTP_PROVIDERS, 
    new Provider(Http, { 
     useFactory: (backend: XHRBackend, defaultOptions: RequestOptions) => new CustomHttp(backend, defaultOptions), 
     deps: [XHRBackend, RequestOptions] 
    }) 
]); 

のみ応答オプションを使用して、あなたはリクエスト/レスポンスを傍受することはできません。

関連する問題