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
添加到 LazilyLoadedModule
的 imports
数组中。因此它没有使用 InterceptorService。要让它工作,只需从那里摆脱它。完成后,它将使用全局 HTTP 拦截器服务。
Here's a Working Sample StackBlitz for your ref.
在我的 app.module.ts
中,我注册了一个 HTTP 拦截器,如下所示:
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: TokenInterceptorService,
multi: true,
},
],
但是,从延迟加载模块发出的请求不使用拦截器。 它也只有在延迟加载模块中注册 HTTP 拦截器时才有效。
但我只想在app.module.ts
中提供一次。
关于如何做到这一点有什么想法吗?还是我必须在每个模块中提供它?
我认为您的情况与 this GitHub thread 中观察到的类似。 JB Nizet 在他的评论中也可能指的是同一件事。
您很可能已将 HttpClientModule
添加到 LazilyLoadedModule
的 imports
数组中。因此它没有使用 InterceptorService。要让它工作,只需从那里摆脱它。完成后,它将使用全局 HTTP 拦截器服务。
Here's a Working Sample StackBlitz for your ref.