Skip to content

参考

axios 请求方法、配置项与默认值、响应结构、错误码、实例方法与静态 API 速查。版本基线 axios 1.x。

一、请求方法别名

方法签名说明
axios(config)axios(config) / axios(url[, config])通用形式
axios.getget(url[, config])查询
axios.deletedelete(url[, config])删除(带 body 放 config.data
axios.headhead(url[, config])仅取头
axios.optionsoptions(url[, config])预检/能力探测
axios.postpost(url[, data[, config]])创建
axios.putput(url[, data[, config]])全量更新
axios.patchpatch(url[, data[, config]])部分更新
axios.postFormpostForm(url, data[, config])自动序列化为 FormData/urlencoded
axios.getForm / putForm / patchForm同上Form 版快捷方法

二、常用请求配置项与默认值

配置默认值说明
url请求地址(相对则拼 baseURL)
method'get'HTTP 方法
baseURL基地址
allowAbsoluteUrlstrue绝对 url 是否覆盖 baseURL
paramsURL 查询参数(对象 / URLSearchParams)
paramsSerializer自定义查询串序列化(encode/serialize/indexes/maxDepth)
data请求体(POST/PUT/PATCH/DELETE)
headers请求头
timeout0超时毫秒;0 表示不限时
withCredentialsfalse跨域是否带 cookie
responseType'json'响应解析:json/text/arraybuffer/blob/stream/document
responseEncoding'utf8'Node 端响应编码
validateStatuss => s>=200 && s<300哪些状态码算成功
maxContentLength-1响应内容最大字节(Node,-1 不限)
maxBodyLength-1请求体最大字节(Node,-1 不限)
maxRedirects5最大重定向次数(Node,0 禁止)
decompresstrueNode 端自动解压(gzip/deflate/br)
xsrfCookieName'XSRF-TOKEN'XSRF 令牌 cookie 名
xsrfHeaderName'X-XSRF-TOKEN'XSRF 令牌头名
withXSRFTokenundefined是否发 XSRF 头(默认仅同源;true 含跨域)
signalAbortController 的 signal(取消)
cancelToken旧取消方式(已弃用,改用 signal)
adapter'xhr'/'http'/'fetch'/函数/数组
authHTTP Basic:{ username, password }
proxyNode 代理:{ protocol, host, port, auth },false 忽略环境代理
httpAgent / httpsAgentNode 自定义 agent(keep-alive 等)
onUploadProgress / onDownloadProgress进度回调
transformRequest / transformResponse内置 JSON请求/响应数据转换(函数数组)
transitional见专家篇过渡开关(silentJSONParsing 等)
redacttoJSON() 时打码的 key 名数组

三、响应对象(AxiosResponse)

js
{
  data,        // 已解析的响应体
  status,      // HTTP 状态码(200…)
  statusText,  // 状态文本('OK'…)
  headers,     // 响应头(小写键;v1 为 AxiosHeaders)
  config,      // 本次请求配置
  request,     // 底层请求对象(XHR / ClientRequest)
}

读响应头:res.headers['content-type']res.headers.get('Content-Type')(大小写不敏感)。

四、错误对象(AxiosError)与错误码

js
{
  message,    // 错误摘要
  name,       // 'AxiosError'
  code,       // 错误码(见下表)
  config,     // 请求配置
  request,    // 请求对象(请求已发但无响应时)
  response,   // 响应对象(服务器有响应、非 2xx 时)
  status,     // 状态码(有响应时)
  toJSON(),   // 转可序列化对象(配合 redact 脱敏)
}
error.code含义
ERR_BAD_REQUEST4xx 响应
ERR_BAD_RESPONSE5xx 响应
ERR_NETWORK网络 / CORS 错误
ECONNABORTED超时或浏览器中止(默认超时码)
ETIMEDOUT超时(需 transitional.clarifyTimeoutError: true
ERR_CANCELED请求被取消(CanceledError)
ERR_FR_TOO_MANY_REDIRECTS重定向超限
ERR_FORM_DATA_DEPTH_EXCEEDEDFormData 序列化嵌套超 maxDepth

五、实例与静态 API

API作用
axios.create([config])创建带默认配置的独立实例
instance.defaults读/写实例默认配置
instance.interceptors.request请求拦截器管理器(use/eject/clear)
instance.interceptors.response响应拦截器管理器(use/eject/clear)
instance.getUri([config])计算并返回完整 URL(不发请求)
axios.isAxiosError(e)类型守卫:是否为 AxiosError
axios.isCancel(e)是否为取消导致的错误
axios.AxiosHeaders头操作类(set/get/setContentType…)
axios.AxiosError / axios.CanceledError错误类
axios.all(iterable) / axios.spread(cb)并发(旧式,推荐 Promise.all
axios.toFormData / axios.formToJSONFormData 与对象互转辅助

六、拦截器执行顺序(高频考点)

拦截器顺序记忆
请求拦截器逆序 LIFO(后注册先执行)像入栈,越晚加越先跑
响应拦截器顺序 FIFO(先注册先执行)像出队,按注册次序加工
js
// 请求拦截器选项(仅请求拦截器支持)
api.interceptors.request.use(fn, errFn, {
  synchronous: true, // 同步执行,减少异步包装延迟
  runWhen: (config) => config.method === "get", // 返回 false 则跳过该拦截器
});

七、取消请求(AbortController)

js
const controller = new AbortController();
axios.get("/x", { signal: controller.signal }).catch((e) => {
  if (axios.isCancel(e)) {
    /* 主动取消 */
  }
});
controller.abort(); // 一个 controller 可取消多个共享 signal 的请求

CancelToken 已弃用(v0.22.0 起),仅作历史兼容,新代码用 AbortController


命令查完,进 指南 · 基础 理解封装,或看 指南 · 进阶 / 指南 · 专家 看实战与内核。