2020-05-07 11:59:48 +08:00

49 lines
1003 B
JavaScript

import Vue from 'vue'
import axios from 'axios'
import router from '@/router'
import { clearLoginInfo } from '@/utils'
import { Message } from 'element-ui'
const http = axios.create({
timeout: 1000 * 30,
withCredentials: true,
headers: {
'Content-Type': 'application/json; charset=utf-8'
}
})
/**
* 请求拦截
*/
http.interceptors.request.use(config => {
config.headers['token'] = Vue.cookie.get('token') // 请求头带上token
config.data = Object.assign({}, config.data, { t: new Date().getTime() })
return config
},
error => {
return Promise.reject(error)
})
/**
* 响应拦截
*/
http.interceptors.response.use(
response => {
if (response.data && response.data.code === 401) { // 401, token失效
clearLoginInfo()
router.push({ name: 'login' })
}
return response.data
},
error => {
Message({
message: error.message,
type: 'error',
duration: 5 * 1000
})
return Promise.reject(error)
}
)
export default http