项目中的一个小业务点,使用 Axios 库创建的 HTTP 客户端实例。话不多说,直接先上代码。
封装代码
// 引入 Axios
import axios from 'axios';
// 创建一个 Axios 实例
const instance = axios.create({
baseURL: 'https://api.example.com', // 设置基准URL
timeout: 5000, // 设置超时时间
});
// 添加请求拦截器
instance.interceptors.request.use(
config => {
// 在发送请求之前做些什么,比如添加 token
config.headers.Authorization = 'Bearer token';
return config;
},
error => {
// 对请求错误做些什么
return Promise.reject(error);
}
);
// 添加响应拦截器
instance.interceptors.response.use(
response => {
// 对响应数据做点什么
return response.data;
},
error => {
// 对响应错误做点什么
return Promise.reject(error);
}
);
// 封装 GET 请求
export const get = (url, params) => {
return instance.get(url, { params });
};
// 封装 POST 请求
export const post = (url, data) => {
return instance.post(url, data);
};
export default instance
主要功能
-
引入 Axios:导入 Axios 库以便进行 HTTP 请求。
-
创建 Axios 实例:
- 设置基础 URL (
baseURL) 为https://api.example.com。 - 设置请求超时时间为 5000 毫秒。
- 设置基础 URL (
-
请求拦截器:
- 在发送请求之前,自动为请求添加
Authorization头部,包含 Bearer token。 - 如果请求发生错误,返回一个拒绝的 Promise。
- 在发送请求之前,自动为请求添加
-
响应拦截器:
- 对于成功的响应,直接返回响应数据。
- 如果响应发生错误,返回一个拒绝的 Promise。
-
封装 GET 和 POST 请求:
- 提供
get和post函数,简化对 Axios 实例的调用,分别用于发送 GET 和 POST 请求。
- 提供