如題: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返回的是這個:
而后臺實際返回的是這個:
{
"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"
}常規(guī)的HTTP狀態(tài)碼本身有意義
根據(jù)問題并結合自身工作開發(fā)經驗,我覺得題主可能需要一個封裝過的返回結果,簡單來說就是除了通信問題外的自定義錯誤情況(比如問題中的400 —— 手機號已存在)放在一個data字段中,然后包在200的http碼中返回給到前端
{
code: 200,
data: {
timestamp: '',
status: 400,
errorMessage: '手機號已存在'
// ...
}
}
類似于這種格式的返回結果,當然這只是一種思路。
返回值 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"
}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...
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產業(yè)為響應國家深化產教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產業(yè)鏈。利用北京大學優(yōu)質教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經理從事移動互聯(lián)網管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經理職務負責iOS教學及管理工作。
浪潮集團項目經理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網頁制作和網頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經驗。曾經歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。