import axios from 'axios' import Vue from 'vue' import router from '../router' var isProduction = process.env.NODE_ENV === 'production' // const serverName = isProduction ? '' : 'http://192.168.0.207:7081/' const serverName = isProduction ? '' : 'https://admin.zhifangbao.com/' const vue = new Vue() axios.defaults.baseURL = serverName axios.defaults.headers['X-Requested-with'] = 'XMLHttpRequest' // 拦截请求,做登陆,或head处理 axios.interceptors.request.use( function (config) { if (config.method === 'post') { config.data = { ...config.data, rnd: Math.random() } } else if (config.method === 'get') { config.params = { rnd: Math.random(), ...config.params } } return config }, function (error) { // 对请求错误做些什么 return Promise.reject(error) } ) // 拦截返回,做错误统一处理 axios.interceptors.response.use( response => { let data = response.data let code = Number(response.data.code) switch (code) { case -1: break case 202: if (window.localStorage.getItem('zfb_token')) { window.localStorage.setItem('zfb_token', '') vue.$alert('登录状态失效,请重新登录', '提示', { confirmButtonText: '确定', callback: function () { router.push('/login') } }) } break case 500: vue.$alert(data.message, '提示', { confirmButtonText: '确定', callback: function () { } }) break case 0: break } // tryHideFullScreenLoading() return data }, error => { if (error.response) { switch (error.response.status) { case 500: vue.$alert(error.response.message, '提示', { confirmButtonText: '确定', callback: action => { } }) break } } return Promise.reject(error) } ) export { serverName, axios }