一、axios常用请求方法

请求方法:对服务器资源,要执行的操作

常用的请求方法有以下几种

AJAX学习(二)_ios

(1)提交数据

使用场景:当数据需要保存在服务器上的时候

例如我们在注册账户时,注册完以后需要把账户的信息存入服务器里,以便下次登录的时候可以从服务器里拿到该账户信息,那么注册的时候就需要用到POST了

(2)使用语法

axios({
      url:'目标资源',
      method:'请求方法',
      data:{
        参数名:值
      }
    }).then(result=>{
      //对服务器返回的数据做后续处理
    })

url:请求的URL网址

method:请求的方法(不区分大小写)

data:提交数据

注意:在使用GET方法可以省略不写的,也就是说如果我们需要获取服务器的数据我们可以这么写

axios({

      url:'目标资源',

      //method:'请求方法',//直接把这行注释掉,

      data:{

        参数名:值

      }

    }).then(result=>{

      //对服务器返回的数据做后续处理

    })

(3)代码示例如下

AJAX学习(二)_服务器_02

(这是一个接口文档,在后面的学习中会讲解的)

现在我们知道了注册账号的URL地址:https://hmajax.itheima.net/api/regist

请求方法:POST

参数名:username 用户名(中英文和数字组成,最少8位)   password 密码(最少6位)

然后根据语法对应写进去

 axios({
        url: 'http://hmajax.itheima.net/api/register',
        //指定请求方法
        method: 'post',
        data: {
          username: 'itheima789',
          password: '123456'
        }
      }).then(result => {
        console.log(result)
      })
    })
    

AJAX学习(二)_ios_03

完整示例代码如下

<!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>05.常用请求方法和数据提交</title>
</head>

<body>
  <button class="btn">注册用户</button>
  <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
  <script>
    /*
      注册用户: http://hmajax.itheima.net/api/register
      请求方法: POST
      参数名:
        username: 用户名 (中英文和数字组成, 最少8位)
        password: 密码 (最少6位)

      目标: 点击按钮, 通过axios提交用户和密码, 完成注册
    */

    const btn = document.querySelector('.btn')
    btn.addEventListener('click', () => {
      axios({
        url: 'http://hmajax.itheima.net/api/register',
        //指定请求方法
        method: 'post',
        data: {
          username: 'Orange11',
          password: '123456'
        }
      }).then(result => {
        console.log(result)
      })
    })


  </script>
</body>

</html>

AJAX学习(二)_.net_04

如果不确定我们的数据是否已经传入服务器,我们可以用该账户再次点击注册,如果我们之前的数据已经传入服务器,那么再用该账户昵称注册肯定会失败的

AJAX学习(二)_.net_05

这样就说明了我们之前的账户已经注册成功了

二、axios错误处理

(1)使用场景

在实际开发中,在使用axios与服务器进行数据交互时会遇到一些错误,当我们想把错误原因返回给用户页面端,就需要使用axios错误处理了。

例如上述列子,我们将已经注册过的账户再次进行注册,那么肯定会报错的,因为账户是唯一性的,那么我们现在需要处理的就是将后台报错的信息显示在页面上。

(2)使用语法

then方法后面,通过点语法调用catch方法,传入回调函数并定义形参

axios({
      //请求选项
    }).then(result=>{
      //处理数据
    }).catch(error=>{
      //错误处理
    })

完整示例代码

<!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>06.axios错误处理</title>
</head>

<body>
  <button class="btn">注册用户</button>
  <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
  <script>
    /*
      注册用户: http://hmajax.itheima.net/api/register
      请求方法: POST
      参数名:
        username: 用户名 (中英文和数字组成, 最少8位)
        password: 密码 (最少6位)

      目标: 点击按钮, 通过axios提交用户和密码, 完成注册
    */
    document.querySelector('.btn').addEventListener('click', () => {
      axios({
        url: 'http://hmajax.itheima.net/api/register',
        // 指定请求方法
        method: 'post',
        data: {
          username: 'itheima007',
          password: '7654321'
        }
      }).then(result => {
        console.log(result)
      }).catch(error => {
      //处理错误信息
        console.log(error)
        console.log(error.response.data.message)
        alert(error.response.data.message)
      })
    })


  </script>
</body>

</html>

AJAX学习(二)_.net_06

三、HTTP协议—请求报文

HTTP协议:规定了浏览器发送及服务器返回内容的格式

请求报文:浏览器按照HTTP协议要求的格式,发送给服务器的内容

AJAX学习(二)_服务器_07

(1)请求报文的组成部分

请求行:请求方法,URL,协议

请求头:以键值对的格式携带的附加信息,比如:Content-Type

空行:分隔请求头,空行之后的是发送给服务器的资源

请求体:发送的资源

axios({
      url: 'http://hmajax.itheima.net/api/register',
      method: 'post',
      data: {
        username: 'itheima007',
        password: '7654321'
      }
    })

AJAX学习(二)_ios_08

(2)如何查看请求报文

首先打开开发者工具(F12),点击网络->消息头(请求行和请求头)->请求(请求体)

下列是我们的请求行和请求头

AJAX学习(二)_.net_09

下列是我们的请求体

AJAX学习(二)_ios_10

注意:请求报文一般是用来错误排查

四、HTTP协议—响应报文

响应报文:服务器按照HTTP协议要求的格式,返回给浏览器的内容

AJAX学习(二)_.net_11


(1)响应报文的组成部分

响应行(状态行):协议、HTTP响应状态码,返回给浏览器的内容

响应头:以键值对的格式携带的附加信息,比如:Content-Type

空行:分隔响应头,空行之后的是服务器返回的资源

响应体:返回的资源

(2)如何查看响应报文

响应报文和请求报文是查看方式是一样的

AJAX学习(二)_服务器_12

AJAX学习(二)_ios_13

注意:HTTP响应状态码是我们需要特别关注的

AJAX学习(二)_服务器_14

五、HTTP响应状态码

HTTP响应状态码:用来表明请求是否成功完成

AJAX学习(二)_.net_15

比如:我们刚才出现的400就是客户端错误,还有经常见的404(服务器找不到资源)

六、接口文档

接口文档:描述接口的文章(后端工程师告知

接口:使用AJAX和服务器通讯时,使用的URL请求方法以及参数

AJAX学习(二)_.net_16

我们在注册账号时,就需要根据接口文档来将相关的信息写入代码中

axios({
      url: 'http://hmajax.itheima.net/api/register',
      method: 'post',
      data: {
        username: 'itheima007',
        password: '7654321'
      }
    })