// 引入 axios
import axios from 'axios';
// 创建一个 axios 实例
const axiosInstance = axios.create({
baseURL: 'https://api.example.com', // 替换为你的 API 基础 URL
timeout: 10000, // 请求超时时间
headers: { 'Content-Type': 'application/json' }
});
// 请求拦截器
axiosInstance.interceptors.request.use(
config => {
// 在发送请求之前做些什么,比如添加认证 token
const token = localStorage.getItem('authToken');
if (token) {
config.headers['Authorization'] = `Bearer ${token}`;
}
return config;
},
error => {
// 对请求错误做些什么
return Promise.reject(error);
}
);
// 响应拦截器
axiosInstance.interceptors.response.use(
response => {
// 对响应数据做点什么
return response.data;
},
error => {
// 对响应错误做点什么
if (error.response) {
// 请求已发出,但服务器响应状态不在 2xx 范围内
switch (error.response.status) {
case 401:
// 未授权,重定向到登录页面
console.error('未授权,请登录');
break;
case 403:
// 禁止访问
console.error('禁止访问');
break;
case 404:
// 资源未找到
console.error('资源未找到');
break;
case 500:
// 服务器内部错误
console.error('服务器内部错误');
break;
default:
console.error(`错误状态码: ${error.response.status}`);
}
} else if (error.request) {
// 请求已发出,但没有收到响应
console.error('请求已发出,但没有收到响应', error.request);
} else {
// 其他错误
console.error('其他错误', error.message);
}
// 返回一个 rejected Promise
return Promise.reject(error);
}
);
// 封装常用的 HTTP 方法
const api = {
get(url, params, config = {}) {
return axiosInstance.get(url, { params, ...config });
},
post(url, data, config = {}) {
return axiosInstance.post(url, data, config);
},
put(url, data, config = {}) {
return axiosInstance.put(url, data, config);
},
delete(url, config = {}) {
return axiosInstance.delete(url, config);
}
};
// 导出 api
export default api;
import api from './path-to-your-api-file'; // 替换为你的 api 文件路径
// 发起 GET 请求
api.get('/users', { page: 1, limit: 10 })
.then(response => {
console.log('用户列表:', response);
})
.catch(error => {
console.error('获取用户列表失败:', error);
});
// 发起 POST 请求
api.post('/users', { name: '张三', age: 30 })
.then(response => {
console.log('用户创建成功:', response);
})
.catch(error => {
console.error('创建用户失败:', error);
});
console