Interceptor.intercept不是函数

时间:2018-05-22 22:14:01

标签: angular angular5

我一直试图实现一个应用程序范围的拦截器,但是,我一直看到以下错误:

TypeError: this.interceptor.intercept is not a function

经过大量调试后,我意识到它发生的原因是因为我有一个从子组件调用的服务。当我使用app.component中的自定义拦截器时,一切正常,但如果我从子组件中使用它,我就会收到该错误。我很茫然。这是一个代码示例。我的设置方式与设置应用的方式大致相同:

https://angular-rbbkvv.stackblitz.io/test/index(没有验证;没有发布POST以便收集数据)

如您所见,我正在显示错误,这是上面发布的错误。最重要的是,如果您按照网络选项卡进行操作,则不会看到正在进行的POST。

我在这个问题上花了好几天,我感到很茫然。我真的希望我做的事情很简单。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您在以下

中使用useValue
providers: [
  { 
    provide: HTTP_INTERCEPTORS,
    useValue: MyHttpInterceptor,
    multi: true
  }
]

将其替换为useClass,它应该可以正常工作