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

HttpInterceptor

Intercepts HttpRequest and handles them.

See more...

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

Description

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.

Methods

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

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

Parameters

req

Type: HttpRequest.

next

Type: HttpHandler.

Returns

Observable<HttpEvent<any>>

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.