React--對axios的封裝


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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM