繁体   English   中英

无法在 Angular 中的 POST 请求中获取 HTTP 响应正文

[英]Trouble getting the HTTP response's body on a POST request in Angular

我正在 angular 13 上制作注册表,但是当我收到 API 的回复时,我收到的回复始终被视为错误,而不是实际回复。 当后端一切正常时,API 会在正文响应中发送 200 HTTP 代码和一条消息,否则,它会发送代码 500 和一条错误消息。

我尝试了很多不同的方法来在控制台上打印响应的主体,但它总是将其打印为错误。

代码是:

this.http.post\<any\>('http://localhost:8090/register', formData, {observe:'response'})
.subscribe({
next :(response) => console.log('Response',response),
error: (error) => console.log('El error',error.error),
});
.

在发送正确的表单后查看开发工具控制台时,它不会显示响应错误,并且可以在主体上找到反馈消息,而当我发送不正确的表单时,控制台将响应显示为错误(因为它是一个 500 HTTP 代码)并且错误消息也出现在正文中。

这就是我得到的:(我尝试提交相同的表格 2 次,第一个评论是我得到的,(我想得到红色部分)接下来的 2 个评论是第二次提交)

我想知道的另一件事是是否可以在订阅中分配一个变量。 我试图将错误分配给全局变量,但是当我尝试打印它时,开发工具控制台显示一条错误消息,指出它没有类型。

太感谢了!!

编辑:这是 .network 控制台显示的内容,控制台标题控制台响应

首先让我们使用一个更传统的模式:

this.http.post<any>('http://localhost:8090/register', formData)
  .pipe(catchError(err => console.error('El error', err))
  .subscribe(data => console.log('Response', data));

这将给您或服务器生成的错误或服务器在控制台中发送的数据。

请在此答案中以评论的形式分享错误或数据,我将在更多帮助下更新答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM