我一直在尝试实现应用程序范围的拦截器,但是,我一直看到以下错误:
TypeError: this.interceptor.intercept is not a function
Run Code Online (Sandbox Code Playgroud)
经过大量调试后,我意识到它发生的原因是因为我有一个从子组件调用的服务。当我使用 app.component 中的自定义拦截器时,一切正常,但是如果我从子组件中使用它,则会出现该错误。我很茫然。这是一个代码示例。我的设置方式与我的应用程序的设置方式大致相同:
https://angular-rbbkvv.stackblitz.io/test/index(没有验证;没有进行 POST,因此收集了数据)
如您所见,我正在显示错误,即上面发布的错误。最重要的是,如果您遵循网络选项卡,您将看不到正在执行的 POST。
我在这个问题上花了几天时间,我不知所措。我真的希望我在做一些非常简单的错误。
我非常感谢您的帮助!
You are using useValue in the following
providers: [
{
provide: HTTP_INTERCEPTORS,
useValue: MyHttpInterceptor,
multi: true
}
]
Run Code Online (Sandbox Code Playgroud)
Replace it with useClass and it should work