import axios from 'axios'
import { Toast } from 'vant';
import $router from '../router/index'
Toast.setDefaultOptions({ duration: 1500 });
Toast.setDefaultOptions('loading', { forbidClick: true });
export const baseURL = "http://localhost:3006";
const axiosInstance = axios.create({
baseURL,
timeout: 10000,
headers: {
'X-Auth0-Token': 'tokenValue'
},
});
axiosInstance.interceptors.request.use(config => {
return config;
}, error => {
return Promise.reject(error);
});
axiosInstance.interceptors.response.use(response => {
switch(response.data.code){
case 0:
Toast.clear();
return response.data
case 40001:
case -401:
Toast('登录已过期,请重新登录')
setTimeout(()=>{
$router.replace('/login')
},1500)
return response.data
default:
Toast(response.data.msg);
return response.data
}
}, error => {
if (error.response) {
switch (error.response.status) {
case 400:
error.message = `错误请求:${error.response.data}`
break
case 401:
error.message = '未授权,请重新登录'
$router.replace('/login')
break
case 403:
error.message = '拒绝访问'
break
case 404:
error.message = '请求错误,未找到该资源'
break
case 405:
error.message = '请求方法未允许'
break
case 408:
error.message = '请求超时'
break
case 500:
error.message = '服务器端出错'
break
case 501:
error.message = '网络未实现'
break
case 502:
error.message = '网络错误'
break
case 503:
error.message = '服务不可用'
break
case 504:
error.message = '网络超时'
break
case 505:
error.message = 'http版本不支持该请求'
break
default:
error.message = `连接错误${error.response.status}`
}
} else {
error.message = '服务器异常'
}
Toast(error.message);
return Promise.reject(error.response);
});
export function getRequest(url, params, loading = true) {
if (loading) {
Toast.loading({
message: '加载中...',
duration: 0,
});
}
return new Promise((resolve, reject) => {
axiosInstance.request({
url,
method: "GET",
params,
}).then(res => {
resolve(res)
}).catch(err => {
reject(err)
})
})
}
export function postRequest(url, data, method = "POST", loading = true) {
if (loading) {
Toast.loading({
message: '加载中...',
duration: 0,
});
}
return new Promise((resolve, reject) => {
axiosInstance.request({
url,
method,
data,
}).then(res => {
resolve(res)
}).catch(err => {
reject(err)
})
})
}