angular - Angular 7 - 整个应用程序的全局 HTTP 拦截器
问题描述
在我的app.module.ts
中,我注册了一个 HTTP 拦截器,如下所示:
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: TokenInterceptorService,
multi: true,
},
],
但是,从延迟加载模块发出的请求不使用拦截器。它也仅在延迟加载模块中注册 HTTP 拦截器时才有效。
但我只想在app.module.ts
.
关于如何做到这一点的任何想法?还是我必须在每个模块中提供它?
解决方案
我认为在您的情况下发生的事情也可以从这个 GitHub 线程中观察到。JB Nizet 在他的评论中也可能指的是同样的事情。
您很可能已将 . 添加HttpClientModule
到. 因此它没有使用 InterceptorService。为了使它工作,只需从那里摆脱它。完成后,它将使用全局 HTTP 拦截器服务。imports
LazilyLoadedModule
这是您参考的工作示例 StackBlitz。
推荐阅读
- xml - 解析 xml(来自 Oracle Agile)返回 nil
- django - 为使用 Django-CKEditor 上传的图像设置默认样式表类
- java - 我怎样才能让这段代码最终打印一条语句,告诉是否至少有一个匹配项或文件不存在?
- python - 试图做一个相关系数但返回高得离谱的值
- python - 通过openCV和python获取旋转点的坐标
- python - 如何构造这个 for 循环?
- c++ - 如何在 C++ 控制台应用程序中显示变音符号?
- python - 在for循环中创建python字典
- keras - 加载 Keras 预训练模型后 feed_dict 出现问题(输入变量“未定义”)
- python - K-Means 聚类算法实现