55 lines
1.7 KiB
JavaScript
55 lines
1.7 KiB
JavaScript
/* 封装axios用于发送请求 */
|
||
import axios from "axios";
|
||
import { Message } from "element-ui"; // 请确保你的项目中已经安装了 Element UI
|
||
const request = axios.create({
|
||
baseURL: "", // 设置基地址,博主这个请求跨域了因此我设置了代理服务器,因此基地址才这么短
|
||
timeout: 5000, // 请求超时:当5s没有响应就会结束请求
|
||
});
|
||
|
||
// 添加请求拦截器,一下内容是axios的拦截器,可以不用写
|
||
request.interceptors.request.use(
|
||
function (config) {
|
||
// 在发送请求之前做些什么
|
||
return config;
|
||
},
|
||
function (error) {
|
||
// 对请求错误做些什么
|
||
return Promise.reject(error);
|
||
}
|
||
);
|
||
|
||
// 添加响应拦截器
|
||
request.interceptors.response.use(
|
||
function (response) {
|
||
// 对响应数据做点什么
|
||
return response.data;
|
||
},
|
||
function (error) {
|
||
// 对响应错误做点什么
|
||
if (error.response) {
|
||
// 请求已发出,但服务器响应状态码不在 2xx 范围内
|
||
console.error("Error status:", error.response.status);
|
||
console.error("Error data:", error.response.data);
|
||
console.error("Error headers:", error.response.headers);
|
||
|
||
// 提示错误信息
|
||
Message.error(`请求错误:${error.response.status}`);
|
||
} else if (error.request) {
|
||
// 请求被发出但未收到响应
|
||
console.error("No response received:", error.request);
|
||
|
||
// 提示错误信息
|
||
Message.error("网络错误,请稍后重试");
|
||
} else {
|
||
// 设置请求时发生了一些错误
|
||
console.error("Error:", error.message);
|
||
|
||
// 提示错误信息
|
||
Message.error("请求失败,请稍后重试");
|
||
}
|
||
return Promise.reject(error);
|
||
}
|
||
);
|
||
|
||
export default request;
|