[JS]Axios

本节目标

熟练使用axios

  • 介绍
  • URL
  • HTTP

介绍

Axios是专注于网络数据请求的库

官网: Axios中文文档 | Axios中文网

基本使用

  • 引入axios
  • 使用axios函数, 传入配置对象, 接受服务器响应数据
<body>
  <p></p>
  <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
  <script>
    // 需求: 请求资源地址, 展示数据到页面
    axios({
      url: 'http://hmajax.itheima.net/api/province'
    }).then((result) => {
      const res = result.data.list.join('<br />')
      document.querySelector('p').innerHTML = res
    })
  </script>
</body>

url

统一资源定位符(URL), 简称网页地址, 是因特网上标砖的资源地址

例如

组成

协议

http协议: 超文本传输协议, 规定浏览器和服务器之间传输数据的格式

协议范围: http/https/...

域名

域名: 服务器在互联网中的唯一标识

端口

端口: 标记服务器里不同功能的服务程序

区分一台服务中的不同程序

说明

  • 端口范围: 0-65535之间的任意整数
  • http协议, 默认访问80端口
  • 0-1023和一些特定端口号已经被占用, 我们自己的服务程序要避开

资源路径

资源路径: 标记资源在服务器中的具体位置

查询参数

浏览器提供给服务器的额外信息, 让服务返回指定的数据

说明

  • 指定格式: http://xxxx.com/xxx/xxx?参数名1=值1&参数名2=值2
  • 在axios中: 通过params选项, 传送查询参数

示例

<body>
  <p></p>
  <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
  <script>
    // 需求: 请求资源地址, 展示数据到页面
    axios({
      url: 'http://hmajax.itheima.net/api/city',
      params: {
        pname: '山东省'
      }
    }).then((result) => {
      const res = result.data.list.join('<br />')
      document.querySelector('p').innerHTML = res
    })
  </script>
</body>

请求方法

对服务器资源, 要执行的操作

常用请求方法

  • get 获取资源
  • post 提交资源
  • put 修改资源(全部)
  • delete 删除资源
  • patch 修改资源(不分)

说明

  • 无论原生还是axios, 都是通过method选项, 配置请求方法
  • get是默认的请求方式

body参数

浏览器提供给服务器的额外信息, 信息放在请求体里面

说明

  • 无论原生还是axios, 都是通过data选项, 传递请求体参数
  • post请求可以传递请求体参数,也可以传递查询参数
  • get请求只能传递查询参数

示例

<body>
  <button class="btn">注册用户</button>
  <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
  <script>
    /*  
     目标: 点击按钮, 通过axios提交用户和密码, 完成注册
    */
    document.querySelector('.btn').addEventListener('click', function () {
      axios({
        url: 'http://hmajax.itheima.net/api/register',
        method: 'post',
        data: {
          username: 'wsdsg666',
          password: 'wsdsg666'
        }
      }).then((result) => {
        console.log(result);
      })
    })
  </script>
</body>

错误处理

axios提供了catch函数, 可以捕获请求出现的错误

说明

catch函数捕获的是axios错误信息

示例

<body>
  <button class="btn">注册用户</button>
  <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
  <script>
    /*  
     目标: 处理请求可能出现的错误
    */
    document.querySelector('.btn').addEventListener('click', function () {
      axios({
        url: 'http://hmajax.itheima.net/api/register',
        method: 'post',
        data: {
          username: 'wsdsg666',
          password: 'wsdsg666'
        }
      }).then((result) => {
        // 成功
        console.log(result);
      }).catch((err) => {
        // 失败
        console.log(err)
        alert(err.response.data.message)
      })
    })
  </script>
</body>

HTTP

请求报文

浏览器按照HTTP协议的要求, 把信息按照固定格式, 整理成请求报文, 发送给服务器

组成

  1. 请求行: 包含请求方式, 请求URL, 协议信息
  2. 请求头: 以键值对的格式携带附加信息, 重要的是Content-Type属性
  3. 请求空行: 作用是分割请求头和请求体
  4. 请求体: 携带给服务器的数据

响应报文

服务器按照HTTP协议的要求, 把信息按照固定格式, 整理成响应报文, 返回给浏览器

组成

  1. 响应行: 包含协议信息, HTTP状态码, 状态信息
  2. 响应头: 以键值对的格式携带附加信息, 重要的是Content-Type属性
  3. 响应空行: 作用是分割响应头和响应体
  4. 响应体: 返回的数据

状态码: 用来表明请求的状态

接口文档

接口: 使用ajax请求数据时,被请求的url地址,就叫做数据接口

描述接口的文档, 记录了使用前后端交互需要的URL, 请求方式, 请求参数等信息

本课程的接口文档 欢迎使用 - B站-AJAX和黑马头条-数据管理平台

接口测试工具 Download Postman | Get Started for Free

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值