1. 程式人生 > >原生JS封裝Ajax

原生JS封裝Ajax

tex urlencode new text repl ons xmlhttp tolower 字符

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