廢話很少說,直接上代碼,本人也是菜雞 若是有什麼不對請指教~
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) }) }) }