封装一个原生的ajax方法(保存方法^_^)
/* 封装一个类似于jq的ajax方法,调用与下面类似 $.ajax({ url:xxx.php, data:{ 'act':'q', 'user':'ghost', 'password':'123abc', }, type:'post', }) */ function jsonToUrl(data){//将json数据变成url格式 var arr=[]; for(var i in data){ arr.push(i+'='+data[i]); } return arr.join('&'); } function ajax(json){ json=json||{}; if(!json.url){ return; } json.data=json.data||{}; json.type=json.type||"get"; var xhr=null; if(window.XMLHttpRequest){ xhr=new XMLHttpRequest() }else{ xhr=new ActiveXObject("Microsoft.XMLHTTP"); } if(json.type=='get'){ xhr.open('GET',json.url+'?'+jsonToUrl(json.data),true); xhr.send(); }else{ xhr.open('POST',json.url,true); xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");//post方法需要添加请求头 xhr.send(jsonToUrl(json.data)); } xhr.onreadystatechange=function(){//监听 if(xhr.readyState==4){ if(xhr.status==200){ json.success && json.success(xhr.responseText); }else{ json.fail && json.fail(xhr.status); } } } }