JavaScript-ajax请求

ajax

  • 为什么要使用ajax
  • 传统网站中会有一些缺陷
  • 网速慢的时候,页面加载时间长,用户只能等待
  • 表单提交后,如果一箱内容不合格,就需要重新填写表单内容,体验不好
  • 页面跳转,会重新加载页面,浪费资源,增加用户等待时间
  • ajax的优点
  • 是浏览器提供的一套方法,可以实现页面无刷新更新数据,提高用户浏览网站的体验
    (就是用户在浏览网页的过程中局部的更新页面的内容)
  • 应用场景
  • 页面上拉加载数据
  • 列表数据无刷新分页
  • 表单数据验证
  • 搜索框提示文字下载列表

ajax运行环境

  • ajax技术需要运行在网站环境中才能够生效

ajax运行原理

  • ajax相当于浏览器发送请求与接收响应的代理人,在不影响用户浏览页面的情况下,局部的更新页面数据,提高用户的体验

ajax对象的定义

# 1.创建ajax对象
var xhr = new XMLrequest(); // 这就是创建ajax实例对象
# 2.告诉ajax请求地址以及请求方式
xhr.open('get','http:127.0.0.1');
# xhr.open('请求方式','请求地址');
# 3.发送请求
xhr.send();
# 4.获取服务端给客户端的响应数据
xhr.addEventlistener('load',function(){
    console.log(xhr.responseText);
});
# 当服务端响应了客户端,客户独断就会自动调用 onload事件处理函数
  • 服务端响应数据格式
  • 在真实项目中,服务器大多数会以json对象作为响应数据格式,当客户端拿到响应数据时,要将json数据和html字符串进行拼接,然后将拼接的结果显示在页面中
    (这里先不讲后端,另写文章)

请求参数的传递

  • get请求\post请求

    • 传统网站是通过表单提交参数
    • ajax是需要自己拼接请求参数的,根据请求方式的不同,将请求参数放到对应的位置上
  • 格式

    • 参数名称=值&参数名称=值

    • 对于get请求,参数是放到请求地址后面的,并且用?进行分割

      # get请求是这样的
      https://www.baidu.com/?user=lmk&passwd=kml
  • get请求参数

    # 先获取元素 例如div元素表单元素等等(这里不多演示)
    
    var xhr = new XMLHttpRequest(); # 创建ajax对象
    # 表单值获取 (在html标签中定义了2个input标签)
    var namev = user.value;
    var agev = age.value;
    
    var value = '?user='+namev+'&age='+agev # 拼接请求参数
    # 配置ajax准备发送get请求到后端服务器上(这里用的falsk)
    xhr.open('get',value,true)
      # 这里value是请求参数,我在falsk后端试了一下,这里写请求参数就可以把参数传递给后端,如果在node.js中要写后端的ip地址加参数
      # true的意思是是否为异步请求,true是 flase否
    
    xhr.send(); # 发送请求
      # 服务器接收请求,给客户端发送响应数据
    # 获取服务端响应的数据
    xhr.addEventListener('load',function(){
        console.log(xhr.responseText);
    })
  • post请求参数

    • post请求的请求餐数和get不一样,不是放到请求地址中,而是要放到请求体当中
    • 只需要将请求参数放到send方法中即可
      # 先获取元素 例如div元素表单元素等等(这里不多演示)
      
      var xhr = new XMLHttpRequest(); # 创建ajax对象
      var userv = user.value # 获取表单值
      var agev = age.value # 获取表单值
      var value = 'user='+userv+'&age='+agev; # 拼接请求参数
      xhr.open('post',''); # 配置ajax请求 
        # 请求为 post请求 第二个参数不写就默认为/路径 默认为true(异步)
        # node.js要写请求地址(这里由于是flask只写请求路径即可)
      xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded'); # post请求中必须要设置请求参数的格式类型
      xhr.send(value) # 发送post请求 ,参数
          
      # 服务器接收请求,给客户端发送响应数据
      # 获取服务端响应的数据
      xhr.addEventListener('load',function(){
        console.log(xhr.responseText);
      })

get请求和post请求的区别

  • post请求必须要请求报文中,明确设置请求参数内容的类型

本博客所有文章是以学习为目的,如果有不对的地方可以一起交流沟通共同学习 邮箱:1248287831@qq.com!