ajax封装函数 (自用)

function ajax(options){
  options=options||{};
  options.data=options.data||{};
  options.type=options.type||'get';
  options.timeout=options.timeout||0;

  if(window.XMLHttpRequest){
    var oAjax=new XMLHttpRequest;
  }else{
    var oAjax=new ActiveXObject('Microsoft.XMLHTTP');
  }

  var arr=[];
  for(var name in options.data){
    arr.push(name+'='+encodeURIComponent(options.data[name]));
  }
  var sData=arr.join('&');

  if(options.type=='get'){
    oAjax.open('GET', options.url+'?'+sData, true);
    oAjax.send();
  }else{
    oAjax.open('POST', options.url, true);
    oAjax.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
    oAjax.send(sData);
  }

  oAjax.onreadystatechange=function (){
    if(oAjax.readyState==4){
      clearTimeout(timer);
      if(
        (oAjax.status>=200 && oAjax.status<300) || oAjax.status==304
      ){
        options.success&&options.success(oAjax.responseText);
      }else{
        options.error&&options.error(oAjax.status);
      }
    }
  };

  if(options.timeout){
    var timer=setTimeout(function (){
      oAjax.abort();
    }, options.timeout);
  }
}

你可能感兴趣的:(ajax封装函数 (自用))