Ajax学习全套(最全最经典)

2019-09-14 06:56:32丽君

原生ajax

 Ajax的核心是XMLHttpRequest对象(XHR)。XHR为向服务器发送请求和解析服务器响应提供了接口。能够以异步方式从服务器获取新数据。

一、XMLHttpRequest对象

Ajax的核心是XMLHttpRequest对象(XHR)。XHR为向服务器发送请求和解析服务器响应提供了接口。能够以异步方式从服务器获取新数据。

XHR的主要方法有: 

1. void open(String method,String url,Boolen async)  
 用于创建请求  
  参数:
    method: 请求方式(字符串类型),如:POST、GET、DELETE...
    url:  要请求的地址(字符串类型)
    async: 是否异步(布尔类型)
2. void send(String body)
  用于发送请求
  参数:
    body: 要发送的数据(字符串类型)
3. void setRequestHeader(String header,String value)
  用于设置请求头
  参数:
    header: 请求头的key(字符串类型)
    vlaue: 请求头的value(字符串类型)
4. String getAllResponseHeaders()
  获取所有响应头
  返回值:
    响应头数据(字符串类型)
5. String getResponseHeader(String header)
  获取响应头中指定header的值
  参数:
    header: 响应头的key(字符串类型)
  返回值:
    响应头中指定的header对应的值
6. void abort() 

终止请求

XHR的主要属性有:

1. Number readyState
  状态值(整数),可以确定请求/响应过程的当前活动阶段 •0:未初始化。未调用open()方法
 •1:启动。已经调用open()方法,未调用send()方法
 •2:发送。已经调用send()方法,未接收到响应
 •3:接收。已经接收到部分数据
 •4:完成。已经接收到全部数据,可以在客户端使用
 2. Function onreadystatechange        
 当readyState的值改变时自动触发执行其对应的函数(回调函数) 
 3. String responseText            
 作为响应主体被返回的文本(字符串类型)
 4. XmlDocument responseXML          
 服务器返回的数据(Xml对象) 
 5. Number states  
 状态码(整数),如:200、404... 6. String statesText             
 状态文本(字符串),如:OK、NotFound...

 二、get请求

GET用于向服务器查询某些信息:

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
  <h1>XMLHttpRequest - Ajax请求</h1>
  <input type="button" onclick="XmlGetRequest();" value="Get发送请求" />
  <script src="/statics/jquery-1.12.4.js"></script>
  <script type="text/javascript">
    function GetXHR(){
      var xhr = null;
      if(XMLHttpRequest){
        xhr = new XMLHttpRequest();
      }else{
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
      }
      return xhr;
    }
    function XmlGetRequest(){
      var xhr = GetXHR();
      // 定义回调函数
      xhr.onreadystatechange = function(){
        if(xhr.readyState == 4){
          // 已经接收到全部响应数据,执行以下操作
          var data = xhr.responseText;
          console.log(data);
        }
      };
      // 指定连接方式和地址----文件方式
      xhr.open('get', "/test/", true);
      // 发送请求
      xhr.send();
    }
  </script>
</body>
</html>