安装 Axios
在项目中安装 Axios 依赖,可以通过 npm 或 yarn 进行安装。
bash
npm install axios
或
bash
yarn add axios
引入 Axios
在需要使用 Axios 的文件中引入 Axios。
javascript
import axios from 'axios';
发起 GET 请求
使用 Axios 发起 GET 请求,获取数据。
javascript
axios.get('https://api.example.com/data')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
发起 POST 请求
使用 Axios 发起 POST 请求,发送数据到服务器。
javascript
axios.post('https://api.example.com/data', { key: 'value' })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
配置全局默认值
设置 Axios 的全局默认配置,例如 baseURL 和 headers。
javascript
axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.headers.common['Authorization'] = 'Bearer token';
创建 Axios 实例
创建自定义的 Axios 实例,用于不同的 API 配置。
javascript
const api = axios.create({
baseURL: 'https://api.example.com',
timeout: 1000,
headers: { 'X-Custom-Header': 'foobar' }
});
api.get('/data')
.then(response => {
console.log(response.data);
});
处理请求和响应拦截器
使用拦截器在请求或响应被处理前进行统一处理。
javascript
axios.interceptors.request.use(config => {
config.headers.Authorization = 'Bearer token';
return config;
}, error => {
return Promise.reject(error);
});
axios.interceptors.response.use(response => {
return response.data;
}, error => {
return Promise.reject(error);
});
取消请求
使用 CancelToken 取消正在进行的请求。
javascript
const CancelToken = axios.CancelToken;
const source = CancelToken.source();
axios.get('https://api.example.com/data', {
cancelToken: source.token
}).catch(error => {
if (axios.isCancel(error)) {
console.log('Request canceled', error.message);
}
});
source.cancel('Operation canceled by the user.');
并发请求
使用 axios.all
和 axios.spread
处理并发请求。
javascript
axios.all([
axios.get('https://api.example.com/data1'),
axios.get('https://api.example.com/data2')
]).then(axios.spread((response1, response2) => {
console.log(response1.data, response2.data);
}));
错误处理
统一处理请求中的错误,包括网络错误和服务器错误。
javascript
axios.get('https://api.example.com/data')
.then(response => {
console.log(response.data);
})
.catch(error => {
if (error.response) {
console.error(error.response.status, error.response.data);
} else if (error.request) {
console.error(error.request);
} else {
console.error(error.message);
}
});