在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ axios如何獲取后端接口返回的狀態(tài)碼以及相關信息

axios如何獲取后端接口返回的狀態(tài)碼以及相關信息

如題:axios如何獲取后端接口返回的狀態(tài)碼以及相關信息

axios返回的有兩個函數(shù)

axios.get("/internal/user/check_mobile_and_sent_code",{withCredentials:true,params:{mobile:formInline.mobile}}).then(res=>{
                        console.log(res);
                        //if(res.result==true){
                            if (!this.timer) {
                                this.count = this.TIME_COUNT;
                                this.show = false;
                                this.timer = setInterval(() => {
                                    if (this.count > 0 && this.count <= this.TIME_COUNT) {
                                        this.count--;
                                    } else {
                                        this.show = true;
                                        clearInterval(this.timer);
                                        this.timer = null;
                                    }
                                }, 1000)
                            }
                        //}
                    }).catch(error=>{
                        console.log(error);
                    })

我想判斷當 返回400或者500的時候 輸出相應的返回信息,請問大神們該怎么判斷呀?
console.log(error);這個error返回的是這個:

clipboard.png

而后臺實際返回的是這個:

{
  "timestamp": "2017-09-15T08:30:56Z",
  "status": 400,
  "error": "Bad Request",
  "exception": "com.xinwenhd.common.utils.BadReqExcption",
  "message": "Bad Request",
  "path": "/internal/user/check_mobile_and_sent_code",
  "errorMassage": "手機號已存在",
  "errorCode": "MOBILE_EXIST"
}
回答
編輯回答
網妓

error.response.status 就是了

2017年8月12日 06:35
編輯回答
空痕

常規(guī)的HTTP狀態(tài)碼本身有意義

  • 2XX:請求成功
  • 3XX:重定向
  • 4XX:客戶端錯誤
  • 5XX:服務器端錯誤

根據(jù)問題并結合自身工作開發(fā)經驗,我覺得題主可能需要一個封裝過的返回結果,簡單來說就是除了通信問題外的自定義錯誤情況(比如問題中的400 —— 手機號已存在)放在一個data字段中,然后包在200的http碼中返回給到前端

{
    code: 200,
    data: {
        timestamp: '',
        status: 400,
        errorMessage: '手機號已存在'
        // ...
    }
}

類似于這種格式的返回結果,當然這只是一種思路。

2017年6月4日 10:35
編輯回答
只愛你

返回值 res 就是包含 status 的對象, 直接使用if(res.status === 400)就是了。

{
  "timestamp": "2017-09-15T08:30:56Z",
  "status": 400, // 看這里
  "error": "Bad Request",
  "exception": "com.xinwenhd.common.utils.BadReqExcption",
  "message": "Bad Request",
  "path": "/internal/user/check_mobile_and_sent_code",
  "errorMassage": "手機號已存在",
  "errorCode": "MOBILE_EXIST"
}
2017年3月12日 01:46
編輯回答
孤客
axios.get('/user/12345')
  .catch(function (error) {
    if (error.response) {
      // The request was made and the server responded with a status code
      // that falls out of the range of 2xx
      console.log(error.response.data);
      console.log(error.response.status);
      console.log(error.response.headers);
    } else if (error.request) {
      // The request was made but no response was received
      // `error.request` is an instance of XMLHttpRequest in the browser and an instance of
      // http.ClientRequest in node.js
      console.log(error.request);
    } else {
      // Something happened in setting up the request that triggered an Error
      console.log('Error', error.message);
    }
    console.log(error.config);
  });

Handling Errors https://github.com/mzabriskie...

2017年3月12日 14:45