我已经阅读了有关Add multiple HTTP Interceptors to Angular Application的帖子,但我的案子更为具体。
我需要多个httpInterceptor来获取多个网址,例如
@NgModule({
...
imports: [
... ,
HttpClientModule
],
providers: [
... ,
{
provide: HTTP_INTERCEPTORS,
useClass: InterceptorOne,
multi: true,
url-pattren: api/* //-- Added for sake of example
},
{
provide: HTTP_INTERCEPTORS,
useClass: InterceptorTwo,
multi: true,
url-pattren: api2/* //-- Added for sake of example
},
{
provide: HTTP_INTERCEPTORS,
useClass: InterceptorThree,
multi: true,
url-pattren: https://3rdPartyApi/* //-- Added for sake of example
}
],
...
})
所以我的意思是,并非所有请求/响应都是Content-Type: application/json
,对于第三方API来说,我也不希望添加任何令牌或其他特定于应用程序的标头。
好吧,我认为我们可以通过创建一个HTTP_INTERCEPTOR来实现此功能,并在其中(通过使用if-else)根据URL添加自定义标头。但是,这会使代码有点脏而且难以维护。
Angular是否提供这种功能(基于URL的HTTP_INTERCEPTORS)?