Axios 学习使用

1. 概念

是一个异步请求技术

基于XMLHttpRequest对象发起的请求都是异步请求

ajax可以用来发送异步请求,但过气了。vue全家桶都是采用的axios

2. 使用demo

下载地址 unpkg.com/axios/dist/...

get 方式请求

response.data 里面就是后端的数据

xml 复制代码
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script type="text/javascript">
      axios
        .get("http://localhost:6001/axios/findAll?username=dingyawu")
        .then(function (response) {
          console.log(response.data);
        })
        .catch(function (err) {
          console.log(err);
        });
    </script>

post请求

  1. axios在发送post请求传参如果是对象,axios会自动将对象转化为jsonstr,使用application/json 的请求头向后端传递参数
  2. axios的post请求传递参数的两种方式 "name=roy&age=23", 或者传递一个对象
xml 复制代码
    <script type="text/javascript">
     
      const params = {
        name: "roy",
        age: 23,
      };
      axios
        .post("http://localhost:6001/axios/save", params)
        .then(function (response) {
          console.log(response.data);
        })
        .catch(function (err) {
          console.log(err);
        });
    </script>

并发请求

针对并发请求用到axios.all(), 用axios.spread() 来汇总请求结果

xml 复制代码
    <script type="text/javascript">
      function findAll() {
        return axios.get(
          "http://localhost:6001/axios/findAll?username=dingyawu"
        );
      }
      const params = {
        name: "roy",
        age: 23,
      };

      function save() {
        return axios.post("http://localhost:6001/axios/save", params);
      }

      axios.all([findAll(), save()]).then(
        axios.spread(function (result1, result2) {
          console.log(result1.data);
          console.log(result2.data);
        })
      );
    </script>
相关推荐
林晓lx24 分钟前
使用Git钩子+ husky + lint语法检查提高前端项目代码质量
前端·git·gitlab·源代码管理
王同学要变强1 小时前
【深入学习Vue丨第二篇】构建动态Web应用的基础
前端·vue.js·学习
程序定小飞1 小时前
基于springboot的web的音乐网站开发与设计
java·前端·数据库·vue.js·spring boot·后端·spring
Hello_WOAIAI1 小时前
2.4 python装饰器在 Web 框架和测试中的实战应用
开发语言·前端·python
FinClip1 小时前
凡泰极客亮相香港金融科技周,AI助力全球企业构建超级应用
前端
阿四2 小时前
【Nextjs】为什么server action中在try/catch内写redirect操作会跳转失败?
前端·next.js
申阳2 小时前
Day 6:04. 基于Nuxt开发博客项目-LOGO生成以及ICON图标引入
前端·后端·程序员
中国lanwp2 小时前
npm中@your-company:registry 和 registry 的区别
前端·npm·node.js
Bacon2 小时前
Electron 应用商店:开箱即用工具集成方案
前端·github
行走的陀螺仪2 小时前
uni-app + Vue3 实现折叠文本(超出省略 + 展开收起)
前端·javascript·css·uni-app·vue3