angular - 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 调用工作正常。
解决方案
BTW请求只能在 LoggedIn 状态下进行,而不是在 SentClientRequest 状态下它不是角度错误。这是服务器端错误
推荐阅读
- c# - 将默认会话提供程序设置为环境变量
- javascript - 在 __webpack_require__ 中的 NextJS 中构建错误
- r - 如何在R编程中找到数据框列的子组内的平均值?
- python - 从烧瓶路由运行服务器
- javascript - 音频数据返回空数组
- javascript - 在对状态中的元素进行排序后,React 列表不会重新渲染表
- ios - XCode 在扩展“Bundle React Native 代码和图像”阶段时崩溃
- sql - 简单的更新查询导致“子查询返回多于一条记录错误”
- javascript - 我如何在 useEffect React Native 中使用 scrollToOffset?
- javascript - Safari 没有触发 localStorage 事件