簡體   English   中英

如何訪問 angular 中的 HTTP 錯誤響應正文

[英]How can I access HTTP error response body in angular

我想訪問錯誤響應正文並在該數組中顯示消息

ERROR:
Bp {headers: Op, status: 422, statusText: "OK", url: "https://abc.trade/trade/save-trade", ok: false, …}
error: Array(1)
0:
  errorArgumentsMap: null
  errorCode: "CREATE_ERROR_CODE"
  errorPropagate: null
  fieldName: ""
  message: "trade already exists with id(T4)"
  name: ""
__proto__: Object
length: 1
__proto__: Array(0)
headers: Op {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}
message: "Http failure response for https://abc.trade/trade/save-trade: 422 OK"
name: "HttpErrorResponse"
ok: false
status: 422
statusText: "OK"
url: "https://abc.trade/trade/save-trade"

這是我從 API 得到的回復。 現在我想訪問error.error.message。 下面是我的代碼

---TS文件---

this.createTrade.saveTrade(tradeData).subscribe((data: any)=>{       
        if(data.id){
          console.log('Created Sucessfully')          
        }        
      },
      error => {        
        if(error){
          let errorMsg = error.error.message;           
          console.log(errorMsg)
        }
      }
)

---service.ts---

saveTrade(request: any) {
const urlList = 'https://abc.trade/trade/save-trade';
return this.http
  .post<[]>(urlList, request, {
    headers: this.headers
  })
  .pipe(
    map(data => {
      return data;
    }),
    catchError(this.handleError)
  );   

}

成功后它正在工作。 但是出錯時我無法讀取error.error.message。我什至嘗試訪問error.error[0].message。 各位大俠能否指教

在此處輸入圖像描述

你試過了嗎

saveTrade(request: any) {
const urlList = 'https://abc.trade/trade/save-trade';
return this.http
  .post<[]>(urlList, request, {
    headers: this.headers
  })
  .pipe(
    map(data => {
      return data;
    }),
    catchError(error => {
      return of(error);
})

  );   


in ts file =>

this.createTrade.saveTrade(tradeData).subscribe((data: any)=>{       
        if(data.id){
          console.log('Created Sucessfully')          
        }        
      },
      error => {      
          console.log(error)
      }
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM