Axios 拦截器

Axios 请求/响应拦截器的链式处理方式、注册顺序与常见用法。

#type / concept #status / growing #tech / network #platform / browser #resource / http #resource / javascript #package / axios

[!info] related notes

Axios 拦截器

一句话定义

拦截器是在请求发出前和响应进入业务前插入的一层链式处理逻辑。

核心内容

请求拦截器

  • 请求前注入 token、语言、traceId
  • 请求前做参数预处理
  • 请求前做去重、节流、日志

响应拦截器

  • 统一提取 response.data
  • 统一处理 401/403/5xx
  • 统一把后端业务 code 转成前端错误对象

使用方式

const id = api.interceptors.request.use(
  config => config,
  error => Promise.reject(error)
)

api.interceptors.request.eject(id)

链式直觉

  • 请求拦截器会进入真正请求之前的 Promise 链
  • 响应拦截器会进入真正响应之后的 Promise 链
  • 需要明确顺序时,不要依赖“看起来会自动对齐”

顺序规则

  • 请求拦截器通常是后注册的先执行
  • 响应拦截器通常是先注册的先执行
  • 这会影响鉴权、日志和错误归一化的层次

边界与易混淆点

  • 拦截器不是中间件服务器,但很像 AOP 切面
  • useeject 要配套使用
  • 拦截器里不要做阻塞式重逻辑

最短记忆方式

  • 请求前拦一次,响应前再拦一次
  • 常用于鉴权、错误处理、日志和重试
创建于 2026/4/7 更新于 2026/4/9