axios 封裝的http請求

使用可配置的ip 

/**
 * 請求工具封裝
 */
import axios from 'axios'
import qs from 'qs'
import { Message,Loading } from 'element-ui';
let loadinginstace; //load加載
//let apiBaseUrl = process.env.BASE_API;
// var service=axios.create({
//     baseURL:apiBaseUrl,
//     //withCredentials:true,
//     timeout:15000
// })

if (process.env.NODE_ENV === "development") {
    console.log("開發環境");
    
  }else {
    console.log("生產環境");
   
  }

axios.defaults.timeout = 20000;
axios.defaults.withCredentials = false
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=utf-8';
  
axios.defaults.params = {};
// 添加請求攔截器
axios.interceptors.request.use(config => {
    loadinginstace = Loading.service({fullscreen: true}) // 請求打開loading
	// 在發送請求之前做些什麼
	return config;
}, function(error) {
	console.log(error);
	// 對請求錯誤做些什麼
    console.log("對請求錯誤做些什麼");
	return Promise.reject(error);
});

// 添加響應攔截器
axios.interceptors.response.use(
   
    function(response) {
        //響應成功 // 對響應數據做點什麼
        loadinginstace.close();  // 響應成功關閉loading
        console.log("狀態碼"+response.status);
        return response.data
    },
    function(error) {
        // 對響應錯誤做點什麼
        //獲取狀態碼404沒有響應
        console.log("對響應錯誤做點什麼"+error.response)
	    return Promise.reject(error);
});

// let prefix  = process.env.baseURL
let prefix=window.g.dev_url;
console.log(prefix)
export default{
    //get請求
    get(url,param){
        return new Promise((resolve,reject)=>{
            axios({
                method:'get',
                url:prefix+url,
                params:param,
            }).then(res=>{
                resolve(res);
            }).catch(err=>{
                console.log(err,'異常');
                loadinginstace.close();  // 響應成功關閉loading
                Message.error({message:"網絡錯誤",center:true,customClass:"MessError",duration:1000});
            })

        })
    },
    //post請求
    post(url,param){
        return new Promise((resolve,reject)=>{
            axios({
                method:'post',
                url:prefix+url,
                data:qs.stringify(param),
            }).then(res=>{
                resolve(res)
            }).catch(err=>{
                console.log(err,'異常');
                loadinginstace.close();  // 響應成功關閉loading
                Message.error({message:"網絡錯誤",center:true,customClass:"MessError",duration:1000});
            })
        })
    },
    axiospost(url,param){
        return new Promise((resolve,reject)=>{
            axios({
                method:'post',
                url:prefix+url,
                data:param,
            }).then(res=>{
                resolve(res)
            }).catch(err=>{
                console.log(err,'異常');
                loadinginstace.close();  // 響應成功關閉loading
                Message.error({message:"網絡錯誤",center:true,customClass:"MessError",duration:1000});
            })
        })
    }
}




 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章