import axiosSJKG from 'axios' import store from '../store' import { Toast } from 'mint-ui' import baseUrl from '@/util/baseUrl' // import router from '@/router/index' import { removeUrlParam } from '@/util/index' // 创建axios实例 const service = axiosSJKG.create({ baseURL: baseUrl.sjkgUrl, timeout: 30000 // 请求超时时间 }) // 返回其他状态吗 service.defaults.validateStatus = function (status) { return status // 默认的 } // 跨域请求,允许保存cookie // axiosSJKG.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 => { const res = response.data && (response.data.code === 0 || response.data.code === 200) ? response.data : response 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 + '/#/recommend/list' }, 4 * 1000) } } else { return Promise.reject(new Error(res.msg)) } } 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