微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax的封装

ajax的封装

function getParam(obj){
  "use strict";
  let str="";   
  for(var k in obj){
    str+=k+"="+obj[k]+"&";  
 }
  return str.substring(0,str.length-1);
}

function createXHR(){
   if(window.XMLHttpRequest){
     return new XMLHttpRequest();
  }
    return new ActiveXObject("Msxml2.XMLHTTP");
}



function Ajax(opts){
  opts.type=opts.type==undefined ? "get":opts.type;
  opts.async=opts.async==undefined ? true:opts.async;
  opts.dataType=opts.dateType==undefined ? "json":opts.dataType;
  
 let xhr=createXHR();
 if(opts.type=="get"){
   xhr.open("get",opts.url+"?"+getParam(opts.data),opts.async);
   xhr.send(null); 
 }else{
   xhr.open("post",opts.url,opts.async);
   xhr.setRequestHeader('Content-Type','application/x-www-form-urlencodeed');
   xhr.send(getParam(opts.data));
 }

 if(opts.async){
   xhr.onreadystatechange=function(){
    if(xhr.readyState==4){
      result();
    } 
  } 
 }else{
   result(); 
 }

}

function result(){
  if(xhr.status===200){
    if(opts.dataType=="json"){
      opts.success(JSON.parse(xhr.responseText));
   }else{
      opts.success(xhr.responseText);
   }
 }

}

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐