Angular 5 Interceptor不拦截从库发出的请求

时间:2017-12-13 14:05:05

标签: angular interceptor angular-http-interceptors

我在Angular 5中有一个工作拦截器。它已在App.module的提供程序中注册,并正确拦截了从应用程序发出的所有请求。

问题是它不会拦截从应用程序使用的库发出的请求。

我正在使用一个开源库(NGX-Jsonapi),需要拦截器在库向后端发出的每个请求中提供一个令牌。

有人遇到同样的问题吗?

编辑:该库使用HttpClient。

2 个答案:

答案 0 :(得分:1)

在版本4.3中,angular添加了一项新服务HttpClient 对于版本5,angular弃用了旧服务Http

拦截器仅适用于HttpClient

您可以确定您所拥有的未被拦截的图书馆使用旧的Http。请注意,Http可能会被角度6删除!

如果您想确保拦截器拦截每个调用,您需要将依赖项升级到最新版本。

答案 1 :(得分:0)

最后,我在Angular HttpInterceptor documentation usage notes中找到了解决方案:

  

要在整个应用中使用相同的HttpInterceptors实例,   仅在您的AppModule中导入HttpClientModule,然后添加   根应用程序注入器的拦截器。如果导入   跨不同模块的HttpClientModule多次(例如,   在延迟加载模块中),每次导入都会创建新的   HttpClientModule,它将覆盖   根模块。

我正在将HttpClientModule导入正在发出hte请求的延迟加载模块中。解决此问题后,所有内容都可以发挥作用。