原生javascript实现的ajax方法,如:Ajax.post();Ajax.get();Ajax.json();Ajax.upload();
使用详情请访问:https://git.oschina.net/wuquanyao/mini-ajax.js/*=================================================<br>
* mini-ajax.js<br>
* author: wuquanyao<br>
* email: wqynqa@163.com<br>
* ver: beta<br>
* date: 2015-10<br>
*===================For Example===================<br>
* Ajax.get('request.php',{a:2015,b:'wqyn'},function(response){<br>
* console.log(response);<br>
* },'json');<br>
*=================================================<br>
* Ajax.post('request.php',{C:'This is request!',D:'datamap'},function(response){<br>
* console.log(response);<br>
* },'json');<br>
*=================================================<br>
* Ajax.json('request.php',{xcv:'This is request!',vcd:'datamap'},function(response){<br>
* console.log(response);<br>
* });<br>
*=================================================<br>
*/<br>
var Ajax = {};<br>
(function(Ajax){<br>
<br>
Ajax.get = function(url,data,func,dataType){<br>
init(url,data,'GET',func,dataType);<br>
}<br>
<br>
Ajax.post = function(url,data,func,dataType){<br>
init(url,data,'POST',func,dataType);<br>
}<br>
<br>
Ajax.json = function(url,data,func){<br>
init(url,data,'GET',func,'json');<br>
};<br>
Ajax.upload = function(params){<br>
//do something, not realized, follow up!!<br>
}<br>
function init(url,data,requestType,func,dataType){<br>
<br>
if(!url){<br>
alert('Request url can not be empty!');<br>
return false;<br>
} <br>
<br>
var dlen = count(data);<br>
if(requestType=='GET'){<br>
if(dlen){<br>
var search = kvalue(data);<br>
url = (url.indexOf('?')==-1)?(url+'?'+search):(url+search);<br>
}<br>
data = null;<br>
}else if(requestType=='POST'){<br>
if(!dlen)<br>
data = null;<br>
else<br>
data = kvalue(data);<br>
}<br>
<br>
var xmlHttp = false,<br>
requestType = requestType || 'GET';<br>
dataType = dataType || 'json';<br>
func = func || function(param){};<br>
<br>
if(window.XMLHttpRequest){<br>
xmlHttp = new XMLHttpRequest();<br>
}else{<br>
try<br>
{<br>
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.5.0");<br>
}catch(e){<br>
try<br>
{<br>
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.4.0");<br>
}catch(e){<br>
try<br>
{<br>
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");<br>
}catch(e){<br>
try{<br>
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");<br>
}catch(e){<br>
<br>
}<br>
} <br>
}<br>
} <br>
}<br>
<br>
if(!xmlHttp){<br>
alert('Your browser does not support Ajax!');<br>
return false;<br>
}<br>
if(xmlHttp.overrideMimeType){ <br>
xmlHttp.overrideMimeType('text/html');<br>
}<br>
var accept = {<br>
text: 'text/plain',<br>
html: 'text/html',<br>
xml : 'application/xml,text/xml',<br>
json: 'application/json,text/javascript'<br>
};<br>
//get,post,put,delete<br>
xmlHttp.open(requestType,url,true);<br>
if(requestType == 'POST'){<br>
xmlHttp.setRequestHeader('Content-type','application/x-www-form-urlencoded;charset=UTF-8');<br>
//xmlHttp.setRequestHeader('Content-type','multipart/form-data');<br>
}<br>
xmlHttp.setRequestHeader('Accept', accept[dataType]+';q=0.9,image/webp,*/*;q=0.8');<br>
xmlHttp.setRequestHeader('Accept-Language', 'zh-cn,zh;q=0.8');<br>
xmlHttp.setRequestHeader('Cache-Control', 'max-age=21600');<br>
xmlHttp.onreadystatechange = function(){<br>
if((xmlHttp.readyState == 4) && xmlHttp.status == 200){<br>
var d = xmlHttp.responseText;<br>
if(dataType == 'json'){<br>
d = JSON.parse(d);<br>
}<br>
func(d);<br>
};<br>
} <br>
xmlHttp.send(data);<br>
}<br>
<br>
function kvalue(params,sep)<br>
{<br>
var kv = '';<br>
sep = sep || '&';<br>
for(key in params){<br>
kv+=key+'='+params[key]+sep;<br>
}<br>
return kv.substring(0,kv.length-1);<br>
}<br>
<br>
function count(data)<br>
{<br>
var index = 0;<br>
for(i in data){<br>
index++;<br>
}<br>
return index;<br>
}<br>
<br>
})(Ajax);
QQ截图20151027101029.png ( 115.41 KB 下载:24 次 )
AD:真正免费,域名+虚机+企业邮箱=0元