axios基本用法、axios如何发起网络请求?如何二次封装axios?
Axios 是一个基于 promise 的 HTTP 库,可以在浏览器和 node.js 中使用。以下是如何使用 Axios 发起网络请求的基本方法,以及如何对 Axios 进行二次封装的示例。
Axios 的基本用法:
// 发送 GET 请求
axios.get('https://api.example.com/data')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
// 发送 POST 请求
axios.post('https://api.example.com/data', {
key1: 'value1',
key2: 'value2'
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
二次封装 Axios:
import axios from 'axios';
// 创建 axios 实例
const service = axios.create({
baseURL: 'https://api.example.com', // API 的 base_url
timeout: 5000 // 请求超时时间
});
// 请求拦截器
service.interceptors.request.use(
config => {
// 可以在这里添加例如 token 等请求头
config.headers['Authorization'] = 'Bearer your-token';
return config;
},
error => {
// 请求错误处理
return Promise.reject(error);
}
);
// 响应拦截器
service.interceptors.response.use(
response => {
// 可以在这里对响应数据进行处理
const { data } = response;
return data;
},
error => {
// 响应错误处理
return Promise.reject(error);
}
);
// 导出二次封装后的 axios 实例
export default service;
在上述二次封装的代码中,我们使用 axios.create
创建了一个新的 axios 实例,并且为这个实例添加了请求拦截器和响应拦截器。在请求拦截器中,我们可以添加例如 token 等认证信息,在响应拦截器中,我们可以对响应的数据进行处理。最后,我们导出了这个实例,以便在其他地方使用。
评论已关闭