77 lines
2.2 KiB
JavaScript
77 lines
2.2 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) {
|
||
// 对响应错误做点什么
|
||
console.log(error);
|
||
return Promise.reject(error)
|
||
}
|
||
)
|
||
|
||
export default request
|
||
|
||
|
||
|
||
// axios.js
|
||
const instance = axios.create({
|
||
baseURL: 'https://api.example.com', // 设置你的API基础URL
|
||
});
|
||
|
||
// 添加一个响应拦截器
|
||
instance.interceptors.response.use(
|
||
(response) => {
|
||
// 如果请求成功,直接返回响应数据
|
||
return response.data;
|
||
},
|
||
(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('请求失败,请稍后重试');
|
||
}
|
||
// 返回一个带有错误信息的 Promise 对象
|
||
return Promise.reject(error);
|
||
}
|
||
);
|
||
|