Axios 简介及使用

Axios 是一个轻量、高效、易用的网络请求库,适用于各种前端项目,尤其适合 Vue、React、Node.js 等生态系统。如正在构建一个需要与后端交互的应用,Axios 是首选工具之一。

1、Axios的特点

Axios 是一个基于 Promise 的 HTTP 请求库,兼容 Promise 的所有 API,支持请求与响应的拦截处理,并能对请求和响应的数据进行转换,自动将响应内容解析为 JSON 格式,极大地方便了前端与后端的数据交互。

2、Axios 常用方法

Axios 提供了多种常用的 HTTP 方法,方便进行前后端数据交互。常用方法包括:axios.get(url[, config]),用于查询列表或获取信息;axios.delete(url[, config]),用于删除数据;axios.post(url[, data[, config]]),用于添加信息;axios.put(url[, data[, config]]),用于更新数据;此外还有 axios.head(url[, config]),用于只获取响应头而不返回主体内容。这些方法覆盖了大部分常见的增删查改场景,是前端进行接口调用的常用工具。

3、Axios相关配置属性

Axios 提供了一系列灵活的配置属性,方便开发者自定义网络请求行为。其中,url 是请求的目标地址,method 指定请求方式,默认为 getbaseURL 可作为所有相对地址请求的前缀,简化接口调用。headers 用于设置自定义请求头,例如 { 'X-Requested-With': 'XMLHttpRequest' }params 用于传递 URL 查询参数,要求为无格式对象或 URLSearchParams 对象。transformRequest 允许在请求发送前对数据进行处理,适用于 POSTPUTPATCH 方法。auth 属性用于 HTTP 基础认证,提供用户名和密码;proxy 则可配置请求通过的代理服务器地址和端口。这些配置使得 Axios 能够满足多样化的请求场景。

配置项说明示例/备注
url请求的服务器 URL"https://api.example.com/users"
method请求方法,默认是 get"get""post""put""delete"
baseURL会自动加在 url 前面,除非 url 是绝对路径便于统一管理接口前缀,例如:"https://api.example.com"
headers自定义请求头{ "X-Requested-With": "XMLHttpRequest" }
paramsURL 查询参数,需为无格式对象或 URLSearchParams{ id: "123", name: "Tom" }
transformRequest请求发送前对数据进行转换,只用于 PUTPOSTPATCH 方法用于修改提交数据结构或格式
authHTTP 基础认证配置{ username: "admin", password: "123456" }
proxy配置代理服务器地址和端口{ host: "127.0.0.1", port: 9000 }

4、axios原理

Axios 的原理是通过 createInstance 方法基于默认配置创建一个新的 Axios 对象,该对象内部会将 Axios.prototype.request 方法中的 this 绑定到新实例上,从而形成一个独立的 axios 实例。每次发起请求,实际上都是调用该实例的 request 方法。同时,Axios 在创建实例时会自动挂载两个拦截器:请求拦截器响应拦截器。请求拦截器可用于在发送请求前统一处理配置,如添加 token;响应拦截器则用于接收到响应后统一处理逻辑,比如检测登录失效并跳转到登录页面。这样的设计使得 Axios 拥有灵活的请求流程控制能力,便于在项目中集中管理请求行为。

推荐阅读
cjavapy编程之路首页