JS基础:16-2、Ajax封装

327 阅读1分钟

前言

前俩天学习了ajax原理,今天学习下对ajax进行封装

function ajax(options) {
  // 1. 创建XMLHttpRequest对象。
  var xhr=null;  
  if (window.XMLHttpRequest){
    // 兼容 IE7+, Firefox, Chrome, Opera, Safari  
    xhr=new XMLHttpRequest();  
  } else{// 兼容 IE6, IE5 
    xhr=new ActiveXObject("Microsoft.XMLHTTP");  
  } 
  let params = [];
  for(let i in options.params) {
    params.push(i + '=' + options.params[i])
  }
  params.join('&');
  // 2. 设置请求方式和参数。
  if(options.type == 'get') {
    xhr.open(options.type,options.url + params, options.async);
    // 3.发送请求
    xhr.send();
  }else if(options.type == 'post'){
    xhr.open(options.type,options.url,options.async);
    xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");  
    // 3.发送请求
    xhr.send(params);
  }
  // 4. 响应处理。
  xhr.onreadystatechange=function()  { 
    if (xhr.readyState==4 &&xhr.status==200)  { 
       console.log('成功', responseText);
       // 处理结果
    }
  } 
}

总结

当我们了解ajax原理之后 对ajax的封装其实特别好理解,就是用一个函数包装XMLHttpRequest对象的请求过程。