首页 > 解决方案 > 在 Angular 7 中读取来自 POST 请求的响应

问题描述

嗨,我有一个 Angular 8 应用程序,可以将数据发布到 API(PHP 中的 REST)。我可以将数据发布到服务器并使用下面的代码创建新记录。

问题:我想阅读 API 方法的响应。例如,我在 API 中有逻辑来检查记录是否已经创建。如果帐户存在,则 API 返回

["MSG":"DUPLICATE_FOUND","STATUS":200]

否则返回

["MSG":"SUCCESS","STATUS":200]

我想在订阅后阅读属性 MSG,然后应用逻辑(即显示错误消息或其他操作)。但是当我执行 console.log(data) 时,它返回 null。

注册组件:

this.userService.addNewUser(user).subscribe(
(data) => {
   console.log(data);
},
error => console.log(error)

用户服务.ts

const httpOptions = {
headers: new HttpHeaders({
'Content-Type':  'application/json'
})
};

addNewUser (user): Observable<any> {
return this.http.post<any>(endpoint + 'createNewUser', user, httpOptions).pipe(
  catchError(this.handleError<any>())
);
}

谢谢你。

标签: angularpost

解决方案


问题是您的回复格式不正确。Angular 期望的是一个有效的 JSON 响应,在您的情况下,您可以通过用花括号替换方括号[]来获得{},如下所示:

["MSG": "DUPLICATE_FOUND", "STATUS": 200]

{"MSG": "DUPLICATE_FOUND", "STATUS": 200}

如有疑问,您可以使用一些在线软件来验证您的 JSON,我喜欢这个


推荐阅读