[英]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 個評論是第二次提交)
我想知道的另一件事是是否可以在訂閱中分配一個變量。 我試圖將錯誤分配給全局變量,但是當我嘗試打印它時,開發工具控制台顯示一條錯誤消息,指出它沒有類型。
太感謝了!!
首先讓我們使用一個更傳統的模式:
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.