import axios from 'axios' import store from '../store' import { Toast } from 'mint-ui' // import router from '@/router/index' import baseUrl from '@/util/baseUrl' import { removeUrlParam } from '@/util/index' // 创建axios实例 const service = axios.create({ baseURL: baseUrl.voucherUrl, timeout: 30000 // 请求超时时间 }) // console.log('NODE_ENV' + process.env.NODE_ENV) // if (process.env.NODE_ENV === 'production') { // // let root = process.env.API_ROOT // axios.defaults.baseURL = baseUrl.voucherUrl // 开发服 // } // 返回其他状态吗 service.defaults.validateStatus = function (status) { return status // 默认的 } // 跨域请求,允许保存cookie service.defaults.withCredentials = true // request拦截器 service.interceptors.request.use(config => { let token = store.getters.access_token if (token) { config.headers['Authorization'] = 'Bearer ' + token } return config }, error => { // Do something with request error console.log(error) // for debug Promise.reject(error) }) // respone拦截器 service.interceptors.response.use(response => { let res = response if (response.request) { res = response.data } // const res = response.data && (response.data.code === 0 || response.data.code === 200) ? response.data : response.data const status = Number(response.status) || 200 console.log('response status:' + status) if (status !== 200) { if (status === 401) { Toast({ message: '您因长时间逗留,验证已过期,正在刷新!', position: 'center', duration: 5 * 1000 }) store.dispatch('setToken', '') store.dispatch('setUserId', '') store.dispatch('setCode', '') setTimeout(function () { window.location.href = removeUrlParam('code') }, 4 * 1000) } else if (status === 403) { if (res.msg === '请先进行实名认证') { // 跳转至社区推荐页 Toast({ message: '您还未实名认证,进入实名认证页面中...', position: 'center', duration: 5 * 1000 }) setTimeout(() => { // router.push({ // path: '/recommend' // }) window.location.href = 'http://' + location.host + '/voucher/recommend/list' }, 4 * 1000) } } else if (status === 404) { Toast({ message: res.error, position: 'center', duration: 3 * 1000 }) } else { let message = 'Error:400' if (res.code && res.code === 1) { message = res.msg } else { message = res.message } Toast({ message: message, position: 'center', duration: 3 * 1000 }) return Promise.reject(new Error(res.message)) } } else if (res.code === 1) { if (!res.msg) { res.msg = '内部服务器错误[500]' } return Promise.reject(new Error(res.msg)) } return res }, error => { console.log('错误' + error)// for debug return Promise.reject(new Error(error)) }) export default service