原生JS封装Ajax

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生JS封装Ajax相关的知识,希望对你有一定的参考价值。

function json2url(json){
  //json参数转字符串
  json.t=‘‘+Math.random();
  json.t=json.t.replace(‘.‘,‘‘);
  var arr=[];
  for(var name in json){
    arr.push(name+‘=‘+json[name]);
  }
  return arr.join(‘&‘);
}
//url,data,type,success,error
function ajax(json){
  var json=json;
  if(!json.url)return;
  json.data=json.data||{};
  json.type=json.type||‘get‘;

  //创建ajax对象
  var oAjax=new XMLHttpRequest();

  //连接方式、发送
  switch(json.type.toLowerCase()){
    case ‘get‘:
      oAjax.open(‘GET‘,json.url+‘?‘+json2url(json.data),true);
      oAjax.send();
    break;
    case ‘post‘:
      oAjax.open(‘POST‘,json.url,true);
      oAjax.setRequestHeader(‘Content-Type‘,‘application/x-www-form-urlencoded‘);
      oAjax.send(json2url(json.data));
    break;
  }
  //接收
  oAjax.onreadystatechange=function (){
    if(oAjax.readyState==4){
      if(oAjax.status>=200&&oAjax.status<300||oAjax.status==304){
        json.success&&json.success(oAjax.responseText);
      }else{
        json.error&&json.error(oAjax.status);
      }
    }
  };
}

//调用
ajax({
  url:‘a.txt‘,
  data:{},
  type:‘‘,
  success:function (str){
    alert(str);
  },
  error:function(data){
      alert(data)
  }
});

 


















































以上是关于原生JS封装Ajax的主要内容,如果未能解决你的问题,请参考以下文章

原生js 封装ajax请求超详细

原生JS封装ajax方法

AJAX-js原生封装

Ajax基础之原生js封装

原生Js封装ajax方法

原生JS封装Ajax插件(同域&&jsonp跨域)