慕容3067478
仅供参考import axios from 'axios'// import {// Message,// MessageBox// } from 'element-ui'import store from '../store'import {
getToken
} from '@/utils/auth'// import Promise from 'es6-promise'// 创建axios实例const service = axios.create({
baseURL: process.env.BASE_API, // api的base_url
timeout: 15000 // 请求超时时间})// request interceptorservice.interceptors.request.use(config => {
config.headers['Authorization'] = 'JWT ' + getToken() // 让每个请求携带token-- ['X-Token']为自定义key 请根据实际情况自行修改
return config
}, error => { // Do something with request error
Promise.reject(error)
})// respone拦截器service.interceptors.response.use( response => { const res = response.data if (res.status !== 1) { // status == 0 错误
var message = res.errMsg; // errCode: 403, token 过期了
if (res.errCode == 403) {
message = "账号信息已经过期,请重新登录";
} else { // 其他提示信息
window.ELEMENT.Message({
message: message, type: 'error',
duration: 3 * 1000
})
} // 删除token,退出用户账号到登录界面
if (res.errCode == 403) { window.ELEMENT.MessageBox.confirm(message, '信息', {
confirmButtonText: '确定',
showCancelButton: false, type: 'warning'
}).then(() => {
store.dispatch('LogOut').then(() => { // 为了重新实例化vue-router对象 避免bug
window.location.href = location.origin + '/';
});
})
} return Promise.reject(res)
} else { return response.data.data
}
}, error => { window.ELEMENT.Message({
message: error.errMsg, type: 'error',
duration: 3 * 1000
}) return Promise.reject(error)
}
)export default service