Interceptor.intercept 不是函数

Seb*_*ohm 2 angular angular5

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

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*_*han 7

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

  • 太感谢了。事实就是如此。我感谢您的帮助,以及供将来参考的一点信息! (2认同)