news 2026/7/16 8:21:09

Axios详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Axios详解

Axios详解

  • 1.Axios 是什么
  • 2.如何使用 Axios
    • 1. 安装与引入
    • 2. 发起 GET 请求
    • 3. 发起 POST 请求
    • 4. 高级用法:拦截器
    • 5. 创建实例(推荐实战做法)

1.Axios 是什么

Axios 是一个基于 Promise 的 HTTP 客户端库,专为浏览器和 Node.js 环境设计。它主要用于在前端(如 Vue、React 等框架)或后端(Node.js)项目中发送 HTTP 请求,实现与服务器的高效数据交互。

核心特性

  • 基于 Promise:天然支持异步操作代码更简洁,易于处理并发请求。
  • 自动转换数据:默认自动将请求数据序列化为 JSON,并将响应数据解析为 JSON对象。
  • 拦截器机制:支持请求拦截器和响应拦截器,便于统一添加认证 Token、处理错误或修改配置。
  • 请求取消与超时:支持取消未完成的请求以节省资源,并可设置请求超时时间。
  • 多环境兼容:同时适用于浏览器端和 Node.js 服务端。

2.如何使用 Axios

1. 安装与引入

在项目中通过 npm 或 yarn 安装:

npminstallaxios 或yarnaddaxios

在代码中引入:

// ES6 模块引入importaxiosfrom'axios';// CommonJS 引入constaxios=require('axios');

2. 发起 GET 请求

GET 请求通常用于从服务器获取数据。参数可以通过params对象传递,Axios 会自动将其编码为 URL 查询字符串。

// 基础 GET 请求axios.get('https://api.example.com/data').then(response=>{console.log('获取成功:',response.data);}).catch(error=>{console.error('请求失败:',error);});// 带参数的 GET 请求axios.get('https://api.example.com/data',{params:{id:123,name:'test'}}).then(response=>{console.log('带参数据:',response.data);});

3. 发起 POST 请求

POST 请求用于向服务器提交数据。默认情况下,Axios 会将数据序列化为 JSON 格式,并设置Content-Typeapplication/json

// 基础 POST 请求axios.post('https://api.example.com/submit',{username:'user1',password:'123456'}).then(response=>{console.log('提交成功:',response.data);}).catch(error=>{console.error('提交失败:',error);});

若需发送表单数据(`application/x-www-form-urlencoded),需手动设置请求头并使用第三方库序列化数据:

constqs=require('qs');axios.post('https://api.example.com/submit',qs.stringify({username:'user1',password:'123456'}),{headers:{'Content-Type':'application/x-www-form-urlencoded'}});

4. 高级用法:拦截器

拦截器允许你在请求发出前或响应返回后统一处理逻辑例如添加身份验证令牌或全局错误处理。

请求拦截器示例:

axios.interceptors.request.use(config=>{// 在发送请求之前做些什么,例如添加 Tokenconsttoken=localStorage.getItem('token');if(token){config.headers['Authorization']=`Bearer${token}`;}returnconfig;},error=>{returnPromise.reject(error);});

响应拦截器示例:

axios.interceptors.response.use(response=>{// 对响应数据做点什么returnresponse;},error=>{// 对响应错误做点什么if(error.response){console.error('服务器响应错误:',error.response.status);}elseif(error.request){console.error('请求未发出:',error.request);}else{console.error('其他错误:',error.message);}returnPromise.reject(error);});

5. 创建实例(推荐实战做法)

在实际开发中,通常会创建一个 Axios 实例来配置 baseURL、超时时间等通用属性,避免重复代码。

constinstance=axios.create({baseURL:'https://api.example.com',timeout:5000,// 超时时间毫秒headers:{'Content-Type':'application/json'}});//使用实例发起请求instance.get('/users').then(response=>console.log(response.data));
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/16 8:19:36

大三必考的5类高含金量IT证书

计算机专业大三学生可以考取的证书选择很多,主要可以根据你的兴趣方向和未来职业规划来选择。以下是一些主流且对求职有直接帮助的证书,供你参考:1. 国内权威认证(基础与进阶)全国计算机等级考试(NCRE&…

作者头像 李华
网站建设 2026/7/16 8:19:14

面向卫星通信的宽带圆极化微带阵列天线仿真与优化

1. 卫星通信中的圆极化微带天线为什么这么重要? 记得我第一次调试卫星通信设备时,发现天线稍微偏转角度信号就急剧衰减。当时导师告诉我:"这就是线极化天线的致命伤"。传统线极化天线就像拿着手电筒照镜子,稍微晃动就会…

作者头像 李华
网站建设 2026/7/16 8:15:42

基于XR Interaction Toolkit的Pico VR沉浸式移动系统开发实战

1. 项目概述:为什么选择 XR Interaction Toolkit 来驱动 Pico VR 的移动?如果你正在用 Unity 开发 Pico VR 应用,并且卡在了“如何让玩家在虚拟世界里自然地走来走去”这个环节,那你来对地方了。沉浸式移动,听起来是个…

作者头像 李华
网站建设 2026/7/16 8:14:12

告别BMC性能差异:ctdeployer提升大规模OS部署效率的5个技巧

告别BMC性能差异:ctdeployer提升大规模OS部署效率的5个技巧 【免费下载链接】ctdeployer The OS batch deployment tool ctdeployer enables large-scale OS installation and configuration across diverse security requirements and hardware environments. It r…

作者头像 李华
网站建设 2026/7/16 8:13:52

OpenDesign设计智能流水线:从源码编译到AI协同交付

1. 别被标题带偏:OpenDesign 不是 Claude 的“平替”,而是设计工作流的底层重构看到标题里“Claude 绝对不想让你知道”“开源免费平替”这种措辞,我第一反应是皱眉——这根本不是技术事实,而是典型流量话术。作为过去三年深度参与…

作者头像 李华