ggfwjsc/src/utils/request.js

133 lines
4.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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) {
config.headers['x-token'] = token
}
return config;
},
(error) => {
return Promise.reject(error);
}
);
// HTTP response 拦截器
axios.interceptors.response.use(
(response) => {
return response;
},
(error) => {
if (error.response) {
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},未知错误!`);
}
} else {
ElMessage.error("请求服务器无响应!");
}
return Promise.reject(error.response);
}
);
var http = {
/** get 请求
* @param {接口地址} url
* @param {请求参数} params
*/
get: function (url, params) {
return new Promise((resolve, reject) => {
axios.get(url, {
params: params
})
.then((response) => {
if (response.data.code == 400 && response.data.msg) {
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) => {
if (response.data.code == 400 && response.data.msg) {
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) => {
if (response.data.code == 400 && response.data.msg) {
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) => {
if (response.data.code == 400 && response.data.msg) {
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;