废话不多说,直接上代码,本人也是菜鸡 如果有什么不对请指教~
ps: message为iview组件的插件 按需引入。
// 引入axiosimport 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) }) }) }