This is the archived documentation for Angular v5. Please visit angular.io to see documentation for the current version of Angular.

HttpInterceptor

npm Package @angular/common
Module import { HttpInterceptor } from '@angular/common/http';
Source common/http/src/interceptor.ts

Interface Overview

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

Description

Intercepts HttpRequest and handles them.

Most interceptors will transform the outgoing request before passing it to the next interceptor in the chain, by calling next.handle(transformedReq).

In rare cases, interceptors may wish to completely handle a request themselves, and not delegate to the remainder of the chain. This behavior is allowed.

Members

      
      intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>
    

Intercept an outgoing HttpRequest and optionally transform it or the response.

Typically an interceptor will transform the outgoing request before returning next.handle(transformedReq). An interceptor may choose to transform the response event stream as well, by applying additional Rx operators on the stream returned by next.handle().

More rarely, an interceptor may choose to completely handle the request itself, and compose a new event stream instead of invoking next.handle(). This is acceptable behavior, but keep in mind 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.