我向服務器發送了很多HTTP請求,並且服務器以新的訪問令牌(可能在標頭或正文中)返回每個響應。Angular2中的響應攔截器
是否有任何方法可以在完成之前或之後處理所有響應,如在某些後端框架中的中間件請求?
我向服務器發送了很多HTTP請求,並且服務器以新的訪問令牌(可能在標頭或正文中)返回每個響應。Angular2中的響應攔截器
是否有任何方法可以在完成之前或之後處理所有響應,如在某些後端框架中的中間件請求?
如果您正在使用角4.0以上的版本,你可以看看HttpClientModule
爲攔截器提供支持。
如
import { Observable } from 'rxjs';
import {Injectable} from '@angular/core';
import {HttpEvent, HttpInterceptor, HttpHandler, HttpRequest} from '@angular/common/http';
import { HttpErrorResponse } from "@angular/common/http";
@Injectable()
export class AngularInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req).do(event => {}, err => {
if(err instanceof HttpErrorResponse){
console.log("Error Caught By Interceptor");
//Observable.throw(err);
}
});
}
}
註冊,如果你不使用的角度V4檢查SO link
這個答案app.module@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
HttpClientModule
],
providers: [
[ { provide: HTTP_INTERCEPTORS, useClass:
AngularInterceptor, multi: true } ]
],
bootstrap: [AppComponent]
})
export class AppModule {
}
更多關於HttpClientModule