我一直试图实现一个应用程序范围的拦截器,但是,我一直看到以下错误:
TypeError: this.interceptor.intercept is not a function
经过大量调试后,我意识到它发生的原因是因为我有一个从子组件调用的服务。当我使用app.component中的自定义拦截器时,一切正常,但如果我从子组件中使用它,我就会收到该错误。我很茫然。这是一个代码示例。我的设置方式与设置应用的方式大致相同:
https://angular-rbbkvv.stackblitz.io/test/index(没有验证;没有发布POST以便收集数据)
如您所见,我正在显示错误,这是上面发布的错误。最重要的是,如果您按照网络选项卡进行操作,则不会看到正在进行的POST。
我在这个问题上花了好几天,我感到很茫然。我真的希望我做的事情很简单。
非常感谢您的帮助!
答案 0 :(得分:1)
您在以下
中使用useValue
providers: [
{
provide: HTTP_INTERCEPTORS,
useValue: MyHttpInterceptor,
multi: true
}
]
将其替换为useClass
,它应该可以正常工作