记录-关于axios封装

38次阅读

共计 1311 个字符,预计需要花费 4 分钟才能阅读完成。

废话不多说,直接上代码,本人也是菜鸡 如果有什么不对请指教~
ps: message 为 iview 组件的插件 按需引入。


// 引入 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)
        })
    })
 }

正文完
 0