angularangular-http-interceptors

How to make an angular module to ignore http interceptor added in a core module


I do have a core module with an HttpInterceptor for authorization handling and I include this module in AppModule, in this way all the other modules that use HttpClient are using this interceptor.

@NgModule({
  imports: [],
  declarations: [],
  providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: AuthInterceptor,
      multi: true,
    },
  ]
})
export class CoreModule { }

How to make a module bypass the default interceptor?

@NgModule({
  imports: [
    CommonModule
  ],
  declarations: components,
  providers: [CustomService],
  exports: components,
})
export class ModuleWithoutInterceptorModule { }

Solution

  • You can use HttpBackend.

    Example:

    import { HttpClient, ..., HttpBackend } from '@angular/common/http';
    
    @Injectable()
    export class TestService {
    
      private httpClient: HttpClient;
    
      constructor( handler: HttpBackend) { 
         this.httpClient = new HttpClient(handler);
      }
    

    In this way the service is not intercepted by AuthInterceptor.