Ajax课堂笔记

Ajax

1 ajax概念:【了解】

  • 局部更新数据,浏览器不刷新。简单的说,就是偷偷的局部和后端进行数据交互。整个过程浏览器不刷新,用户体验极好。

2 发送get请求【重点】

  • 4步 】使用原生js的ajax,发送get请求.

    // 1. 创建一个ajax对象 
    let xhr = new XMLHttpRequest()
    
    // 2. 配置 请求方式 和 请求地址
    xhr.open('get', 后端给的ajax接口地址?参数名1=参数值1&参数名2=参数值2)
    
    // 3. 发送请求
    xhr.send()
    
    // 4 监听xhr对象的状态 接收数据
    xhr.onreadystatechange = function () {
        // 当xhr对象的状态为4 且 http状态码为200 才能接收数据
        if (xhr.readyState == 4 && xhr.status === 200) {
            // responseText就是后端响应回来的数据 是一个字符串格式
            let data = xhr.responseText; 
        }
    }
    

3 发送post请求【重点】

  • 5步

    // 1. 创建一个ajax对象 
    let xhr = new XMLHttpRequest()
    
    // 2. 配置 请求方式 和 请求地址
    xhr.open('post', 后端给的ajax接口地址)
    
    // 3. 设置请求头
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
    
    // 4. 发送请求
    xhr.send('参数名1=参数值1&参数名2=参数值2')
    
    // 5 监听xhr对象的状态 接收数据
    xhr.onreadystatechange = function () {
        // 当xhr对象的状态为4 且 http状态码为200 才能接收数据
        if (xhr.readyState == 4 && xhr.status === 200) {
            // responseText就是后端响应回来的数据 是一个字符串格式
            let data = JSON.parse( xhr.responseText ) ; 
        }
    }
    

4 验证邮箱是否存在【重点】

```javascript

email.addEventListener(“blur”, function () {
let val = email.value;

    // 发送ajax给后端 让后端去数据库瞧一眼 看有没有
    // 1. 创建一个ajax对象
    let xhr = new XMLHttpRequest();

    // 2. 配置 请求方式 和 请求地址
    xhr.open("post", "http://139.9.177.51:3333/api/emailExist");

    // 3. 设置请求头
    xhr.setRequestHeader(
      "Content-Type",
      "application/x-www-form-urlencoded"
    );

    // 4. 发送请求
    xhr.send(`email=${val}`);

    // 5 监听xhr对象的状态 接收数据
    xhr.onreadystatechange = function () {
      // 当xhr对象的状态为4 且 http状态码为200 才能接收数据
      if (xhr.readyState == 4 && xhr.status === 200) {
        // responseText就是后端响应回来的数据 是一个字符串格式
        let data = JSON.parse(xhr.responseText);

        let code = data.code;
        let msg = data.msg;

        if (code === 200) {
          // 成功
          info.innerHTML = msg;

          email.style.border = "2px solid green";
          info.style.color = "green";
        } else if (code === 500) {
          // 失败
          info.innerHTML = msg;

          email.style.border = "2px solid red";
          info.style.color = "red";
        }
      }
    };
  });
```

5 注册功能实现【重点】

registerBtn.addEventListener("click", function () {
        let val = email.value;

        // 1. 创建一个ajax对象
        let xhr = new XMLHttpRequest();
        xhr.open("post", "http://139.9.177.51:3333/api/reg");
        xhr.setRequestHeader(
          "Content-Type",
          "application/x-www-form-urlencoded"
        );
        xhr.send(`email=${val}`);
        xhr.onreadystatechange = function () {
          if (xhr.readyState == 4 && xhr.status === 200) {
            let data = JSON.parse(xhr.responseText);
            console.log("后端响应的结果:", data);
            let code = data.code;
            let msg = data.msg;

            if (code === 200) {
              // 成功
              alert(msg);
            } else if (code === 500) {
              // 失败
              alert(msg);
            }
          }
        };
      });

6 同步和异步【理解清晰】

  • 同步:代码从上往下,依次执行,后面的代码,必须等待前面的代码执行完毕,才能实现。
  • 异步:代码从上往下,依次执行,如果遇到异步异步代码让开,放到一个队列中去排队,等待所有同步代码执行完毕,才会执行异步。

7 jquery的ajax

  • 发送get请求

    $.get(地址?参数名1=参数值1&参数名2=参数值2function (data) {
       // data就是后端响应回来的数据      
    })
    
  • 发送post请求

    $.post(地址,{ 参数名1:参数值1,参数名2:参数值2 }, function (data) {
       // data就是后端响应回来的数据      
    })
    
  • 万能方式 【以前公司全部都是这种】【掌握】

    $.ajax({
        url: '',  // 请求的ajax接口地址
        type: '', // 方式
        data: {  // 参数
            
        },
        success: function (data) {
            // 成功的回调函数 只要请求成功 就会执行这个函数 data就是后端响应的数据
        }
        
    })
    

8 综合实例

var valid = false; // 是否可以提交表单 发送注册ajax

    $('#email').on('blur', function () {
      var val = $('#email').val()  // 获取输入框的值

      // 发送ajax 验证这个邮箱是否可以使用
      $.ajax({
        url: 'http://139.9.177.51:3333/api/emailExist',
        type: 'post',
        data: {
          email: val
        },
        success: function (data) {
          let code = data.code
          let msg = data.msg

          if (code === 200) {
            valid = true
            $('#email').css('border', '1px solid green')
            $('#info').html(msg).css('color', 'green')
          } else if (code === 500) {
            valid = false
            $('#email').css('border', '1px solid red')
            $('#info').html(msg).css('color', 'red')
          }
        }
      })
    })


    $('#registerBtn').on('click', function () {
      var val = $('#email').val()

      if (valid) {
        // 发送注册的ajax
        $.ajax({
          url: 'http://139.9.177.51:3333/api/reg',
          type: 'post',
          data: {
            email: val
          },
          success: function (data) {
            let code = data.code
            let msg = data.msg

            if (code === 200) {
              alert(msg)
            } else if (code === 500) {
              alert(msg)
            }
          }
        })
      }
    })

66- 今日任务

  • 【1】使用get方式4步 — 原生js方式

  • 【2】使用post方式5步 — 原生js方式

  • 【3】使用 $.ajax() 方式, 实现综合实例。

  • 【4】 把数组的20个方法,都使用一次,写上自己的理解。

  • 扩展题目【选做】

    • 自己实现jquery发送ajax的三种方式【使用起来要一模一样】
      • 万能方式
      • get方式
      • post方式
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值