簡體   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