首页 > 解决方案 > Angular HTTP 获取请求在 ngOnInit 中不起作用

问题描述

我正在尝试在组件加载时从后端 API 获取数据。

服务文件中的 API 调用

  getFiles(): Observable<any> {
    return this.httpClient.get<any>('http://localhost:5000/api/file');
  }

在内部组件中订阅该服务OnInit

  ngOnInit(): void {
    this.postDataService.getFiles().subscribe( data => {
      console.log('test', data);
    });
  }

它给出以下响应(200)。我没有收到任何错误

code: "EINVALIDSTATE"
message: "Requests can only be made in the LoggedIn state, not the SentClientRequest state"

如果我调用相同的服务,(click)它工作正常。

 testClick(): void {
    this.postDataService.getFiles().subscribe( data => {
      console.log('test', data);
    });
  }

调用服务有什么问题吗ngOnInit?怎样才能让它发挥作用?


编辑


经过这么多的故障排除后,我发现当我尝试直接加载子路由时它给出了错误。如果我加载主页然后单击链接导航到任何组件,那么这个 api 调用工作正常。

标签: angularhttpclient

解决方案


BTW请求只能在 LoggedIn 状态下进行,而不是在 SentClientRequest 状态下它不是角度错误。这是服务器端错误

请查看tediousjs.github.io


推荐阅读