Help Angular by taking a 1 minute survey!Go to surveyHome

HttpInterceptor

Intercepts HttpRequest or HttpResponse and handles them.

See more...

      
      interface HttpInterceptor {
  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>
}
    

See also

Description

Most interceptors transform the outgoing request before passing it to the next interceptor in the chain, by calling next.handle(transformedReq). An interceptor may transform the response event stream as well, by applying additional RxJS operators on the stream returned by next.handle().

More rarely, an interceptor may handle the request entirely, and compose a new event stream instead of invoking next.handle(). This is an acceptable behavior, but keep in mind that further interceptors will be skipped entirely.

It is also rare but valid for an interceptor to return multiple responses on the event stream for a single request.

Methods

  • req: The outgoing request to handle
  • next: The next interceptor in the chain, or the backend if no interceptors in the chain.
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>
      
      intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>
    
Parameters
req HttpRequest
next HttpHandler
Returns

Observable<HttpEvent<any>>

Usage notes

To use the same instance of HttpInterceptors for the entire app, import the HttpClientModule only in your AppModule, and add the interceptors to the root application injector . If you import HttpClientModule multiple times across different modules (for example, in lazy loading modules), each import creates a new copy of the HttpClientModule, which overwrites the interceptors provided in the root module.