Angular里用HttpClient发请求为啥收不到响应数据?

欧阳胜洋 阅读 14

我在Angular组件里用HttpClient调后端接口,请求能发出去,Network面板也看到返回了200和JSON数据,但subscribe里拿不到data,控制台还报错说“Cannot read property ‘xxx’ of undefined”。

我试过直接打印res,发现整个response对象是undefined。是不是要加什么配置?代码大概是这样:

this.http.get('/api/user').subscribe(res => {
  console.log(res.name); // 这里报错
});

后端返回的是标准JSON,比如{"name": "Alice", "id": 123},应该没问题啊。

我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
端木怡企
这个问题我遇到过好几次,大概率是你没在模块里导入HttpClientModule,或者有拦截器把响应吃掉了。

先检查app.module.ts有没有导入:

import { HttpClientModule } from '@angular/common/http';

@NgModule({
imports: [
HttpClientModule // 这个必须加
]
})
export class AppModule { }


如果已经导入了,看看有没有自定义拦截器在捣乱,拦截器里记得要return next.handle(req)。实在不行就在get方法里显式指定类型:this.http.get('/api/user'),差不多就行。
点赞
2026-03-01 00:11