當你接收到400 這里失敗請求的時候,其實已經成功訪問服務器了,可能你發送的post數據在服務器那邊校驗失敗了,如果你的服務器返回的是json格式的話,在前端接收到的也是json格式,如果你使用axios發送請求的話,在catch的時候,返回的error並不是一個對象,而是這樣的字符串:
那么axios發送post請求不管成功狀態碼200,還是失敗狀態碼400或其他,都接收到json格式,讓我們前端知道具體是什么原因而請求失敗呢【必須訪問error.response響應對象】
axios參考文檔:https://www.kancloud.cn/yunye/axios/234845
async _getServerResponse () { axios.post( config.server_register_url, this.form_data ).then( result => { // 只有狀態碼為200,才能返回true,說明注冊成功,其他狀態碼全部失敗! return result.data.code === 200; } ).catch( ( error ) => { // 【務必注意】這里的error輸出的不是一個對象【error.response才是一個對象】 console.log(error); if (error.response) { // 請求已發出,但服務器響應的狀態碼不在 2xx 范圍內 console.log( error.response.data ); console.log( error.response.status ); console.log( error.response.headers ); } else { // Something happened in setting up the request that triggered an Error console.log( "Error", error.message ); } console.log( error.config ); } ); return false; }