一般vue項目都會對axios進行封裝,后台統一規范默認讓服務器對所有請求都返回成功,然后在成功的對象里面包裝一層對象result,里面也包含code,msg,result信息,前端拿這個result里面的code來做判斷接口是否相應成功;類似如下:
const api = axios.create({ baseURL:'', transformRequest;[data =>{qs.stringify(data)}] }) api.interceptors.response.use(function (response) { return response; }, function (error) { let data = {} if(err.message.indexOf('timeout')>-1){ data.message = '請求超時' return { data } } 。。。 。。。 return error; });
平常用慣了項目封裝的axios的請求和異常處理;突然一下子不用封裝的,單獨將axios引入用(比如多個文件和表單數據一起上傳);一下沒想出來,一查資料其實也簡單,怕忘記,記錄如下:
兩種方式:
axios.interceptors.response.use(function (response) { return response; }, function (error) { console.log(error.response) //服務器返回的錯誤信息,常見的400請求錯了,這里能看到400請求返回的錯誤信息 return Promise.reject(error); });
axios.get('/user/12345')
.catch(function (error) {
if (error.response) {
// 請求已發出,但服務器響應的狀態碼不在 2xx 范圍內
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
} else {
console.log('Error', error.message);
}
console.log(error.config);
});
