一、原生 Ajax
var url = "http://192.168.4.18:8000/"var xhr = new XMLHttpRequest();xhr.open("get", url, true);xhr.send();xhr.onreadystatechange = function () {if (xhr.readyState == 4 && xhr.status == 200) {var result = JSON.parse(xhr.responseText);console.log(result)}}
二、封装过的Ajax
封装函数
function ajax({url,method="get",success}) {var xhr = new XMLHttpRequest();xhr.open(method, url, true);xhr.send();xhr.onreadystatechange = function () {if (xhr.readyState == 4 && xhr.status == 200) {var result = JSON.parse(xhr.responseText);success(result)}}}
调用
ajax({url,method,success:res=>{console.log(res)}})
三、jQuery - Ajax
$.ajax({
  url:"http://192.168.4.18:8000/",
  type:"get",
  dataType:"json",
  success:res=>{
    console.log(res)
  }
})
四、封装过的 jQuery - Ajax
封装
function http({url,type="get",success}){
  $.ajax({
    url,
    type,
    dataType:"json",
    success:res=>{
      success(rs)
    }
  })
}
五、promise 封装函数
将纵向嵌套的ajax,变成横向的了,结构稍微清晰了一点。
function http(url){
  return new Promise((resolve,reject)=>{
    $.ajax({
      url,
      type:"get",
      success:res=>{
        resolve(res)
      },
      error:err=>{
        reject(err);
      }
    })
  })
}
                    