/**
* 對axios的封裝
*/
//引入axios
import axios from 'axios';
//引入其它配置(根據具體需求按需引入)
import { history } from 'umi';
//1.創建axios實例,默認配置也可以在具體請求內復寫修改。
const instance = axios.create({
//請求頭默認配置
headers: {
//請求為異步設置
'x-requested-with': 'XMLHttpRequest',
//請求類容數據格式
//詳情:https://www.cnblogs.com/fei-yu9999/p/15270729.html
'Content-Type': 'application/x-www-form-urlencoded'
},
// 覆寫庫的超時默認值
// 現在,在超時前,所有請求都會等待 5 秒
timeout:5000,
//apibaseURL設置
baseURL:'http://localhost:3000',
});
// 2.添加請求攔截器
instance.interceptors.request.use((request) => {
// 在發送請求之前做些什么
/**
* 添加權限驗證
const user: any = true;
if (user) {
request.headers = {
...request.headers,
Authorization: user,
};
}
*/
return request;
},(error)=>{
// 對請求錯誤做些什么(轉到錯誤頁面之類的)
return Promise.reject(error);
});
// 3.添加響應攔截器
instance.interceptors.response.use((response) => {
// 對響應數據做點什么
/**
* 對特定api進行操作
* if (response.config.url == '/api/auth/getCode') {
return response;
}
*/
//對一些特定的后端指定錯誤進行頁面跳轉(比如權限驗證等的)
//返回data使用時只關注數據
return response.data;
},(error) => {
// 對響應錯誤做點什么(轉到錯誤頁面之類的)
return Promise.reject(error);
});
export default instance;