import axios from 'axios' import Vue from 'vue' import router from '../router' var isProduction = process.env.NODE_ENV === 'production' const serverName = isProduction ? '' : '' // const serverName = isProduction ? '' : 'http://192.168.0.135:8105' 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.rnd = Math.random() } config.headers['token'] = window.localStorage.getItem('cjt_token') 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 4500: vue.$alert('没有获得授权,请联系系统管理员', '提示', { confirmButtonText: '确定', callback: function () { } }) break case 5001: if (window.localStorage.getItem('cjt_token')) { window.localStorage.setItem('cjt_token', '') vue.$alert('登录状态失效,请重新登录', '提示', { confirmButtonText: '确定', callback: function () { router.push('/login') } }) } break case 5002: if (window.localStorage.getItem('cjt_token')) { window.localStorage.setItem('cjt_token', '') vue.$alert('登录状态失效,请重新登录', '提示', { confirmButtonText: '确定', callback: function () { router.push('/login') } }) } break case 500: vue.$alert('服务器错误', '提示', { confirmButtonText: '确定', callback: function () { } }) break case 0: break } // tryHideFullScreenLoading() return data }, error => { vue.$alert('服务器错误', '提示', { confirmButtonText: '确定', callback: function () { } }) return Promise.reject(error) } ) export { serverName, axios }