1. ホーム
  2. angular

[解決済み] コアモジュールで追加されたhttpインターセプターを無視するアンギュラーモジュールの作り方

2023-03-23 18:42:46

質問

私は認可処理のためのHttpInterceptorを持つコアモジュールを持っており、私はこのモジュールをAppModuleに含め、この方法でHttpClientを使用する他のすべてのモジュールは、このインターセプタを使用しています。

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

モジュールをデフォルトのインターセプターをバイパスさせる方法は?

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

どのように解決するのですか?

HttpBackendを使用することができます。

例です。

import { HttpClient, ..., HttpBackend } from '@angular/common/http';

@Injectable()
export class TestService {

  private httpClient: HttpClient;

  constructor( handler: HttpBackend) { 
     this.httpClient = new HttpClient(handler);
  }
....

この方法では、AuthInterceptorによってサービスが傍受されることはありません。