原生JS封裝Ajax

來源:互聯網
上載者:User

標籤:bre   ica   name   ==   request   對象   ros   XML   alert   

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.