import axios from 'axios'
|
|
import { ctx } from '../../../electron/config'
|
import router from '@/router'
|
|
// 创建 axios 实例
|
const service = axios.create({
|
baseURL: ctx,
|
timeout: 300000 // 请求超时时间
|
})
|
|
// 请求拦截器
|
service.interceptors.request.use(
|
(config) => {
|
const token = localStorage.getItem('token')
|
if (token) config.headers['Authorization'] = `bearer ${token}`
|
return config
|
},
|
(error) => {
|
// 发送失败
|
Promise.reject(error)
|
}
|
)
|
|
// 响应拦截器
|
service.interceptors.response.use(
|
(response) => {
|
|
if (response.status == 200) {
|
if (response.request.responseURL.indexOf('/FileDownload') > -1) {
|
return response.data;
|
}
|
return response.data.data;
|
}
|
},
|
(error) => {
|
let msg = '请求发生错误';
|
if ((error.response && error.response.status == 401) || error.code == "ERR_NETWORK") {
|
localStorage.removeItem("token")
|
localStorage.removeItem("userInfo")
|
router.replace({
|
path: '/login'
|
})
|
} else {
|
if (error.response && error.response.data) {
|
msg = error.response.data.msg
|
}
|
}
|
throw msg;
|
}
|
)
|
|
export default service
|