什么是 Axios 以及为什么需要它?
Axios 是一个强大且流行的 JavaScript 库,用于执行 HTTP 请求。它既可以在浏览器中运行,也可以在 Node.js 环境中运行,并提供一个基于 Promise 的统一、便捷的 API。如果您需要向 API 发送 GET 请求、通过 POST 将数据上传到服务器,或者处理 JSON 格式的响应,Axios 都能优雅且高效地完成。
为什么使用 Axios 而不是内置的 fetch 或 XMLHttpRequest?
- 自动处理 JSON: Axios 会自动将响应转换为 JSON,省去了调用
response.json()的麻烦。 - 拦截器 (Interceptors): 您可以轻松地为所有请求(例如,授权令牌)或响应(例如,错误处理)添加全局逻辑。
- 请求取消: 通过
AbortController内置支持请求取消。 - CSRF 保护: 自动处理 XSRF 令牌以增强安全性。
- 上传进度: 能够跟踪数据发送和接收的进度。
- 便捷的错误处理: 提供更具信息性的错误消息,并能轻松区分响应状态。
- 支持旧版浏览器: 与
fetch不同,Axios 可在 Internet Explorer 11 及其他过时浏览器中运行。
安装
在 Node.js 项目或前端项目(通过 npm/yarn/pnpm)中安装 Axios 只需一条命令:
# 通过 npm 安装(推荐)npm install axios
# 通过 yarn 安装yarn add axios
# 通过 pnpm 安装pnpm add axios要在浏览器中使用,您也可以通过 CDN 引入 Axios:
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>快速开始
安装后,您可以立即开始发送请求。以下是一个向公共 API 发送 GET 请求的简单示例:
// 导入库(适用于 Node.js 或模块化项目)import axios from 'axios';
// 向 JSONPlaceholder API 发送 GET 请求axios.get('https://jsonplaceholder.typicode.com/posts/1') .then(response => { console.log('响应状态:', response.status); console.log('数据:', response.data); }) .catch(error => { console.error('请求错误:', error.message); });这段代码将发送一个 GET 请求,接收响应,并输出其状态和主体(该主体已自动从 JSON 解析为 JavaScript 对象)。
主要方法和函数
Axios 为所有主要的 HTTP 方法提供了便捷的包装方法。每个方法都返回一个 Promise。
1. axios.get(url, config?)
功能: 执行 HTTP GET 请求以从服务器获取数据。
参数:
url(string) — 请求的 URL 地址。config(object, 可选) — Axios 配置对象(例如,headers、用于查询字符串的params、timeout)。
示例:
// 带查询参数的请求axios.get('https://api.example.com/users', { params: { page: 2, limit: 10 }, headers: { 'Authorization': 'Bearer my-token' }}).then(response => { console.log(response.data);});2. axios.post(url, data?, config?)
功能: 执行 HTTP POST 请求以向服务器发送数据(通常用于创建新资源)。
<