首页 > 解决方案 > Angular 7 - 整个应用程序的全局 HTTP 拦截器

问题描述

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

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

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

但我只想在app.module.ts.

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

标签: angulartypescriptlazy-loadingangular7angular-http-interceptors

解决方案


我认为在您的情况下发生的事情也可以从这个 GitHub 线程中观察到。JB Nizet 在他的评论中也可能指的是同样的事情。

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


这是您参考的工作示例 StackBlitz


推荐阅读