記錄 關於axios封裝

廢話很少說,直接上代碼,本人也是菜雞 若是有什麼不對請指教~
ps: message爲iview組件的插件 按需引入。ios

// 引入axios
import axios from 'axios';
import { Message } from 'iview'
import store from './../store'
import router from './../router'


if (process.env.NODE_ENV == 'development') {    
  axios.defaults.baseURL = '/api';} 
else if (process.env.NODE_ENV == 'debug') {    
  axios.defaults.baseURL = '';
} 
else if (process.env.NODE_ENV == 'production') {    
  axios.defaults.baseURL = './';
}


axios.defaults.timeout = 60000; //設置請求時間

// 響應攔截器
axios.interceptors.response.use(    
  response => {   
      // 若是返回的狀態碼爲0000,說明請求數據成功(注:0000是我和公司後臺約定的狀態碼,具體的隨機應變)     
      // 不然的話拋出錯誤{  
          if(response.data.retCode != '0000'){
            store.commit('common/defaultEntity', {
              retCode: response.data.retCode,
              retMsg: response.data.retMsg
            })
            router.push({ path: '/error'}); 
          }
          return Promise.resolve(response);      
  },  
  error => {
    store.commit('common/defaultEntity', {
      retCode: error.response.status,
      retMsg: '請求不存在'
    })
    router.push({ path: '/error'});   
    return Promise.reject(error.response);
  }    
);




/**
 * 封裝get方法
 * @param url
 * @param data
 * @returns {Promise}
*/
export function fetch(url,params={}){
    return new Promise((resolve,reject) => {
      axios.get(url,{
        params:params
      })
      .then(response => {
        resolve(response.data);
      })
      .catch(err => {
        reject(err)
      })
    })
  }
/**
 * 封裝post請求
 * @param url
 * @param data
 * @returns {Promise}
 */

 export function post(url,data = {}){
   return new Promise((resolve,reject) => {
     axios.post(url,data).then(response => {
        resolve(response.data);
        },err => {
        reject(err)
        })
    })
 }
相關文章
相關標籤/搜索