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
指定请求方式,默认为 get
。baseURL
可作为所有相对地址请求的前缀,简化接口调用。headers
用于设置自定义请求头,例如 { 'X-Requested-With': 'XMLHttpRequest' }
。params
用于传递 URL 查询参数,要求为无格式对象或 URLSearchParams 对象。transformRequest
允许在请求发送前对数据进行处理,适用于 POST
、PUT
、PATCH
方法。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" } |
params | URL 查询参数,需为无格式对象或 URLSearchParams | { id: "123", name: "Tom" } |
transformRequest | 请求发送前对数据进行转换,只用于 PUT 、POST 、PATCH 方法 | 用于修改提交数据结构或格式 |
auth | HTTP 基础认证配置 | { 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 拥有灵活的请求流程控制能力,便于在项目中集中管理请求行为。