📅  最后修改于: 2023-12-03 15:29:33.375000             🧑  作者: Mango
Axios 是一个基于 Promise 的 HTTP 客户端,可用于浏览器和 Node.js。它使用 XMLHttpRequest 和 node 中的 http 模块作为处理请求的后端,具有简单易用的 API,具有拦截器(Interceptor)、取消请求、自动转换JSON等功能。
首先需要安装 Node.js,之后使用 npm 命令进行安装。
npm install axios
如果你使用的是 Yarn 包管理器,可以使用以下命令进行安装。
yarn add axios
在使用之前先导入 Axios。
const axios = require('axios');
或者使用 ES6 的 import 语法。
import axios from 'axios';
Axios 的 API 非常简单易用,每个 API 都返回一个 Promise 对象,可以用 then 和 catch 方法进行链式调用。
axios.get('/user')
.then(response => console.log(response))
.catch(error => console.log(error));
axios.get(url[, config])
url 是请求的 URL 地址,config 是可选的请求配置对象,如 headers、params、auth 等。
示例:
axios.get('/user?ID=12345')
.then(response => console.log(response))
.catch(error => console.log(error));
axios.post(url[, data[, config]])
url 是请求的 URL 地址,data 是请求体中的数据,config 是可选的请求配置对象,如 headers、params、auth 等。
示例:
axios.post('/user', {
firstName: 'John',
lastName: 'Doe'
})
.then(response => console.log(response))
.catch(error => console.log(error));
Axios 可以同时处理多个请求,使用 axios.all 和 axios.spread 方法。
axios.all([
axios.get('/user/12345'),
axios.get('/user/67890')
])
.then(axios.spread((user1, user2) => {
console.log(user1);
console.log(user2);
}))
.catch(error => console.log(error));
Axios 支持拦截器(Interceptor),用于在请求或响应被 then 或 catch 处理之前执行一些操作,如设置请求头、做数据转换等。
axios.interceptors.request.use(config => {
config.headers['Authorization'] = 'Bearer ' + localStorage.getItem('token');
return config;
}, error => {
return Promise.reject(error);
});
axios.interceptors.response.use(response => {
return response.data;
}, error => {
return Promise.reject(error.response);
});
Axios 支持取消请求,需要使用 CancelToken。
const CancelToken = axios.CancelToken;
const source = CancelToken.source();
axios.get('/user', {
cancelToken: source.token
})
.then(response => console.log(response))
.catch(error => console.log(error));
source.cancel('请求被取消');
Axios 默认会将响应数据转换为 JSON 格式,当响应数据为 JSON 格式时,也会自动转换为 JavaScript 对象。
axios.get('/user/12345')
.then(response => console.log(response.data))
.catch(error => console.log(error));
Axios 是一个优秀的 HTTP 客户端库,它具有简单易用和拦截器等高级功能。Axios 在前后端开发中都能够发挥出很好的作用,建议掌握基本使用方法。