美文网首页
ajax封装函数 (自用)

ajax封装函数 (自用)

作者: 于晓鱼 | 来源:发表于2017-04-05 13:20 被阅读0次
    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封装函数 (自用)

          本文链接:https://www.haomeiwen.com/subject/ruitattx.html