1、封装
代码语言:js复制// request.js
import axios from 'axios';
// 创建 axios 实例
const request = axios.create({
baseURL: 'https://api.example.com', // 基础 URL
timeout: 5000, // 请求超时时间
});
// 请求拦截器
request.interceptors.request.use(
config => {
// 在发送请求之前做些什么,比如添加 token
const token = localStorage.getItem('token');
if (token) {
config.headers.Authorization = `Bearer ${token}`;
}
return config;
},
error => {
// 处理请求错误
return Promise.reject(error);
}
);
// 响应拦截器
request.interceptors.response.use(
response => {
// 处理响应数据
return response.data;
},
error => {
// 处理响应错误
if (error.response) {
// 请求已发出,但服务器响应的状态码不在 2xx 范围内
console.error('Response error:', error.response.data);
} else {
// 其他错误
console.error('Error:', error.message);
}
return Promise.reject(error);
}
);
export default request;
2、使用
代码语言:js复制// 在需要进行 API 调用的文件中
import request from './request';
// 示例:获取数据
const fetchData = async () => {
try {
const data = await request.get('/data'); // 假设你的 API 路径是 /data
console.log('Data:', data);
} catch (error) {
console.error('API call error:', error);
}
};
// 调用示例函数
fetchData();