AJAX

  AJAX全称:async javascript and xml( 现可用  json  代替xml  )

  Ajax概念:异步的javascript和xml,用于浏览器和后台服务进行异步交互(传递信息)

  1) 特点:

    不会导致页面的全局刷新就可以进行与后台的交互

    交互需要在"查看元素 -> 网络"中监控

  2) 使用方式

    XMLHttpRequest

    1. 实例化

      var xhr = new XMLHttpRequest();

    2. 设置请求

      xhr.open(method,url);

    3. 设置头信息

      xhr.setRequestHeader()

    4. 设置体信息(method为post时候)

      xhr.send(data);

    5. 设置监听

      xhr.onreadystatechange = function(){

        this.readyState // 1 2 3 4

        this.status // 200 404 500  200(ok)    404(not found file:找不到资源,前端出错)    500(error:后台异常)

        this.response // 响应信息

      }

示例如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ajax-get</title>
    <script>
    // onload 事件会在页面或图像加载完成后立即发生,使加载页面完毕后再执行JS代码
    window.onload = function(){
        // 声明函数
        function getAllCustomer(){
            // 实例化xhr对象
            var xhr = new XMLHttpRequest();
            // 设置请求行
            //外网地址,需联网
            xhr.open("get","http://134.175.154.93:6677/customer/findCustomerAll");
            // 教室局域网上的地址,需插网线
            // xhr.open("get","http://172.16.5.250:6677/customer/findCustomerAll");
            // 设置请求头(Content-Type)
            xhr.responseType = "json";
            // 设置请求体
            xhr.send();
            // 监听响应
            xhr.onreadystatechange = function(){
                //如果接受成功返回值为4时
                if(this.readyState === 4 ){
                    //如果返回值为Ok即使200时
                    if(this.status === 200){
                        //打印响应信息
                        console.log(this.response);
                    //如果返回值为非200时
                    } else {
                        //打印错误,并打印错误信息
                        console.log("error:",this.response);
                    }
                } 
            }
        }
        // 调用getAllCustomer获取数据
        getAllCustomer();
    }
    </script>
</head>
<body>

</body>
</html>

 

jQuery中的ajax [基于回调函数]

  1)速写方法

    $.get(url[,data][,success][,dataType])

      以get方式请求

        url 请求地址

        data 请求参数,对象

        success 回调函数

        dataType responseType

示例如下:

$(function(){
  //请求地址
  var url = "http://133.177.144.33:5555/address/findAddressAll";
  //请求参数
  var param = {id:2}
  //请求方法(速写)
  //请求地址,请求参数,回调函数()
  $.get(url,{id:2},function(data,textStatus){
     //打印获取到的信息
     console.log(data,"---");
     //打印当前状态
     console.log("-----",textStatus);
  })
})

    

    $.post(url[,data][,success][,dataType])

      以post方式请求

        url 请求地址

        data 请求参数,对象

        success 回调函数

        dataType responseType

示例如下:

$(function(){
    //请求地址
    var url = "http://133.177.144.33:5555/address/insertAddress";
    //请求参数
    var data = {
        province:"甘肃省",
        city:"兰州市",
        area:"七里河",
        address:"人民路",
        telephone:"18822220000"
    }
    // content-type, querystring
    //请求地址,请求参数,回调函数()
    $.post(url,data,function(response,status){
        //打印添加结果(后台传递的数据)
        console.log(response,"---");
        //打印当前状态
        console.log("---",status);
    })
}) 

 

  2)低级别接口

    $.ajax({

      url,

      data,

      success,

      ...

    })