Axios — 用于 JavaScript (Node.js) 的 HTTP 客户端

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

什么是 Axios?

Axios 是一个流行的 JavaScript HTTP 客户端,可在浏览器和 Node.js 环境中运行。它基于 Promise,并提供便捷的 API 用于执行 HTTP 请求。该库自动处理 JSON,支持拦截器(interceptors)、请求取消和 CSRF 保护。

为什么需要 Axios?

与内置的 fetch 不同,Axios 开箱即用提供更丰富的功能:自动数据转换、上传进度条、超时设置、重试机制以及对旧版浏览器的支持。对于 Node.js 开发者来说,它是与 REST API、微服务和外部服务交互的必备工具。

安装

通过 npm 或 yarn 安装该库:

npm install axios

或用于全局使用:

npm install -g axios

主要功能

  • 支持所有 HTTP 方法:GET、POST、PUT、DELETE、PATCH 等。
  • 自动 JSON 序列化/反序列化。
  • 请求和响应拦截器,用于日志记录、身份验证和错误处理。
  • 请求取消,通过 AbortController(现代 API)或 CancelToken(已弃用)。
  • 超时设置和重试机制(通过插件或手动配置)。
  • 文件上传并显示进度(通过 onUploadProgress)。

Node.js 代码示例

const axios = require('axios');

async function getPost(id) { try { const response = await axios.get(`https://jsonplaceholder.typicode.com/posts/${id}`); console.log('数据:', response.data); } catch (error) { console.error('错误:', error.message); }}

getPost(1);

// 带数据的 POST 请求const newPost = { title: '标题', body: '文章内容', userId: 1,};

axios.post('https://jsonplaceholder.typicode.com/posts', newPost) .then(res => console.log('已创建:', res.data)) .catch(err => console.error('错误:', err));

何时使用 Axios

Axios 非常适合需要可靠且功能丰富的 HTTP 客户端的项目:企业级应用、微服务架构、与外部 API 集成,以及需要兼容旧版 Node.js(18.x 之前)的场景。如果您偏好轻量级解决方案,可以考虑 node-fetch 或 Node.js 18+ 内置的 fetch。

总结

Axios 仍然是 JavaScript 生态系统中 HTTP 请求的事实标准。凭借其简单性、灵活性和庞大的社区支持,该库既适用于快速原型开发,也适用于大型生产系统。

推荐