1. axios概述

  1. axios 是一个专注于网络请求的库。
  2. axios 在请求到数据之后,在真正的数据之外,套了一层外壳。
    【网络请求之Axios】axios的基础用法

2.axios的基本使用

2.1 发送get请求

代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <button id="btnGet">发送GET请求</button>
    <button id="btnPost">发送POST请求</button>
    <!-- 引入axios -->
    <script src="/lib/axios.js"></script>
    <script>
      document.querySelector("#btnGet").addEventListener("click", function () {
        axios({
          // 请求方式
          method: "GET",
          // 请求地址
          url: "http://www.liulongbin.top:3006/api/getbooks",
          // URL中的查询参数
          params: {
            id: 2,
          },
        }).then(function(result) {
            console.log(result);
        })
      });
    </script>
  </body>
</html>

结果:
【网络请求之Axios】axios的基础用法

2.2 发送post请求

代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <button id="btnPost">发送POST请求</button>
    <!-- 引入axios -->
    <script src="/lib/axios.js"></script>
    <script>
      document.querySelector('#btnPost').addEventListener('click', function() {
        axios({
            method: 'POST',
            url: 'http://www.liulongbin.top:3006/api/post',
            // 请求体参数
            data: {
                name: 'zs',
                age: 12,
            }
        }).then(function(result) {
            console.log(result);
        })
      })
    </script>
  </body>
</html>

结果:
【网络请求之Axios】axios的基础用法

3. 使用async…await、解构赋值对代码进行改造

3.1 为什么可以要使用async/await?

【网络请求之Axios】axios的基础用法
结果:
【网络请求之Axios】axios的基础用法
axios的返回值是一个Promise类型。

3.2 以发送post请求为例

代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <button id="btnPost">发送POST请求</button>
    <!-- 引入axios -->
    <script src="/lib/axios.js"></script>
    <script>
      document.querySelector("#btnPost").addEventListener("click", async function () {
        // 解构赋值的时候,使用 : 进行重命名
        // 1. 调用 axios 之后,使用 async/await 进行简化
        // 2. 使用解构赋值,从 axios 封装的大对象中,把 data 属性解构出来
        // 3. 把解构出来的 data 属性,使用 冒号 进行重命名,一般都重命名为 { data: res }
        const { data: res } = await axios({
          method: "POST",
          url: "http://www.liulongbin.top:3006/api/post",
          // 请求体参数
          data: {
            name: "zs",
            age: 12,
          },
        });
        console.log(res);
      });
    </script>
  </body>
</html>

结果:
【网络请求之Axios】axios的基础用法

4.使用axios直接发送请求

4.1 使用axios直接发送get请求

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <button id="btnGet">发送GET请求</button>
    <button id="btnPost">发送POST请求</button>
    <!-- 引入axios -->
    <script src="/lib/axios.js"></script>
    <script>
      document
        .querySelector("#btnGet")
        .addEventListener("click", async function () {
          const { data: res } = await axios.get(
            "http://www.liulongbin.top:3006/api/getbooks",
            {
              params: {
                id: 3,
              },
            }
          );
          console.log(res.data);
        });
    </script>
  </body>
</html>

结果:
【网络请求之Axios】axios的基础用法

4.2 使用axios直接发送post请求

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <button id="btnPost">发送POST请求</button>
    <!-- 引入axios -->
    <script src="/lib/axios.js"></script>
    <script>
      document
        .querySelector("#btnPost")
        .addEventListener("click", async function () {
          const { data: res } = await axios.post(
            "http://www.liulongbin.top:3006/api/post",
            { name: "zs", age: 20 }
          );
          console.log(res);
        });
    </script>
  </body>
</html>

注意:这里的请求体参数可以直接写在{}中,而不用加data
结果:
【网络请求之Axios】axios的基础用法

5. 参考

黑马vue视频,感谢llb老师。

建议学习axios之前先了解一下http协议。

发表回复