Angular 7 - 整个应用程序的全局 HTTP 拦截器

Angular 7 - Global HTTP Interceptor for whole Application

在我的 app.module.ts 中,我注册了一个 HTTP 拦截器,如下所示:

providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: TokenInterceptorService,
      multi: true,
    },
  ],

但是,从延迟加载模块发出的请求不使用拦截器。 它也只有在延迟加载模块中注册 HTTP 拦截器时才有效。

但我只想在app.module.ts中提供一次。

关于如何做到这一点有什么想法吗?还是我必须在每个模块中提供它?

我认为您的情况与 this GitHub thread 中观察到的类似。 JB Nizet 在他的评论中也可能指的是同一件事。

您很可能已将 HttpClientModule 添加到 LazilyLoadedModuleimports 数组中。因此它没有使用 InterceptorService。要让它工作,只需从那里摆脱它。完成后,它将使用全局 HTTP 拦截器服务。


Here's a Working Sample StackBlitz for your ref.