ggfwjsc/src/utils/request.js

133 lines
4.0 KiB
JavaScript
Raw Normal View History

2024-05-11 14:30:29 +08:00
import axios from 'axios';
import { ElMessage } from 'element-plus'
import tools from '@/utils/tools'
import router from '../router';
// axios.defaults.baseURL = '/api'
axios.defaults.timeout = 120000
// HTTP request 拦截器
axios.interceptors.request.use(
(config) => {
let token = tools.data.get('token');
if (token) {
2024-05-20 11:06:31 +08:00
config.headers['x-token'] = token
2024-05-11 14:30:29 +08:00
}
return config;
},
(error) => {
return Promise.reject(error);
}
);
// HTTP response 拦截器
2024-05-24 15:49:50 +08:00
axios.interceptors.response.use(
(response) => {
return response;
},
(error) => {
if (error.response) {
2024-06-14 09:40:18 +08:00
if (error.response.status == 401) {
ElMessage.error("请重新登录!");
// window.location.href = '/#/login?returnURL=' + window.location.href
window.location.href =
'http://220.191.238.50:996/api/login?returnURL=' +
window.location.href
} else if (error.response.status == 404) {
ElMessage.error("Status:404正在请求不存在的服务器记录");
} else if (error.response.status == 500) {
ElMessage.error({
title: '请求错误',
message: "Status:500服务器发生错误"
});
} else {
ElMessage.error(`Status:${error.response.status},未知错误!`);
}
2024-05-24 15:49:50 +08:00
} else {
ElMessage.error("请求服务器无响应!");
}
return Promise.reject(error.response);
}
);
2024-05-11 14:30:29 +08:00
var http = {
/** get
* @param {接口地址} url
* @param {请求参数} params
*/
get: function (url, params) {
return new Promise((resolve, reject) => {
axios.get(url, {
params: params
})
.then((response) => {
2024-05-21 14:57:12 +08:00
if (response.data.code == 400 && response.data.msg) {
2024-05-11 14:30:29 +08:00
ElMessage.error(response.data.msg);
}
resolve(response.data);
})
.catch((error) => {
reject(error);
});
})
},
/** post
* @param {接口地址} url
* @param {请求参数} params
*/
post: function (url, params) {
return new Promise((resolve, reject) => {
axios.post(url, params)
.then((response) => {
2024-05-21 14:57:12 +08:00
if (response.data.code == 400 && response.data.msg) {
2024-05-11 14:30:29 +08:00
ElMessage.error(response.data.msg);
}
resolve(response.data);
})
.catch((error) => {
reject(error);
});
})
},
put: function (url, params) {
return new Promise((resolve, reject) => {
axios.put(url, params)
.then((response) => {
2024-05-21 14:57:12 +08:00
if (response.data.code == 400 && response.data.msg) {
2024-05-11 14:30:29 +08:00
ElMessage.error(response.data.msg);
}
resolve(response.data);
})
.catch((error) => {
reject(error);
});
})
},
delete: function (url, params) {
return new Promise((resolve, reject) => {
axios.delete(url, params)
.then((response) => {
2024-05-21 14:57:12 +08:00
if (response.data.code == 400 && response.data.msg) {
2024-05-11 14:30:29 +08:00
ElMessage.error(response.data.msg);
}
resolve(response.data);
})
.catch((error) => {
reject(error);
});
})
},
download: function (url) {
let user = tools.data.get('user');
let token = "x-token=" + user.token;
url = url + (url.indexOf("?") > 0 ? "&" : "?") + token;
window.open(url);
}
}
export default http;