/** * 對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;