原生ajax函数封装

原生ajax函数

function ajax(json){
    json=json || {};
    if(!json.url){
    return;
   } json.data=json.data || {}; json.type=json.type || 'get'; var xmlhttp = null; if(window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }else{ xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');  //兼容IE } //将data转换成字符串 var arr = []; for(var key in json.data){ arr.push(key + "=" + json.data[key]); } var postData = arr.join("&"); json.type = json.type.toUpperCase(); if(json.type === "GET"){ xmlhttp.open(json.type, json.url+'?'+postData+"&time=" +Math.random(), true); xmlhttp.send(); }else{ xmlhttp.open(json.type, json.url, true); xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8'); xmlhttp.send(postData); } xmlhttp.onreadystatechange=function(){ if(xmlhttp.readyState === 4){ if(xmlhttp.status>=200 && xmlhttp.status<300 || xmlhttp.status==304){ json.success && json.success(xmlhttp.responseText); }else{ json.error && json.error(xmlhttp.status); } } }; }

使用方法举例:

ajax({
  url: '/login',
  data: {user: oUser.value, pass: oPass.value},
  success: function (str){
    var json=eval('('+str+')');
    if(json.ok){
      alert('登录成功');
    }else{
      alert('失败:'+json.msg);
    }
  },
  error: function (){
    alert('通信失败');
  }
});

 

posted @ 2018-09-17 23:48  0恋晨曦0  Views(103)  Comments(0Edit  收藏  举报