import axios from 'axios'
|
import router from '../router'
|
import { Message } from 'element-ui'
|
import vue from 'vue'
|
|
const instance = axios.create({
|
baseURL: process.env.VUE_APP_URL,
|
timeout: 50000,
|
// 不携带cookie
|
withCredentials: true,
|
headers: {
|
'Content-Type': 'application/json'
|
}
|
})
|
|
// 添加请求拦截器
|
instance.interceptors.request.use(function (config) {
|
return config
|
}, function (error) {
|
Message.error('请求存在问题,请检查')
|
return Promise.reject(error)
|
})
|
|
// 添加响应拦截器
|
instance.interceptors.response.use(function (response) {
|
if (response.data.code === 1) {
|
return response
|
} else if (response.data.code === 401) {
|
Message.error('登录已过期,请重新登录')
|
vue.prototype.$$router.push({ path: '/login' })
|
return Promise.reject(response.data)
|
} else if (response.data.code === 403) {
|
Message.error('权限不足,无法访问')
|
return Promise.reject(response.data)
|
} else {
|
Message.error(response.data.message)
|
return Promise.reject(response.data.message)
|
}
|
},
|
|
function (error) {
|
console.log(error, '错误')
|
// 处理http状态码
|
if (error.response.data) {
|
error.message = error.response.data.msg
|
}
|
if (error.response.code === 401) {
|
error.message = '登录已过期,请重新登录'
|
vue.prototype.$$router.push({ path: '/login' })
|
}
|
if (error.response.code === 403) {
|
error.message = '权限不足'
|
}
|
Message.error(error.message)
|
return Promise.reject(error)
|
}
|
|
)
|
|
|
export default instance
|