function createXHR()
{
if(typeof XMLHttpRequest != "undefined")
{
return new XMLHttpRequest();
}
else if(typeof ActiveXObject != "undefined")
{
var versions = [
"MSXML.2.XMLHttp.6.0",
"MSXML.2.XMLHttp.3.0",
"MSXML.2.XMLHttp"
];
for(var i = 0; i
{
try{
return new ActiveXObject(version[i]);
}catch(e){
// 因类循环会报一个错,跳过些错
}
}
}
else
{
throw new Error("你的系统或浏览器不支持XHR对象!");
}
}
// 名值对转换字符串
function params(data)
{
var arr = [];
for(var i in data)
{
arr.push(encodeURIComponent(i)+"="+encodeURIComponent(data[i]));
}
return arr.join("&");
}
// ajax
function ajax(obj)
{
var xhr=createXHR();
obj.url=obj.url+"?rand="+Math.random()+"&"+params(obj.data);
obj.data = params(obj.data);
if(obj.method === "GET")
{
obj.url=obj.url+"&"+obj.data;
}
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4)
{
if(xhr.status == 200)
{
obj.success(xhr.responseText)
}
else
{
console.log("错误码:"+xhr.status+"-错误信息"+xhr.statusText);
}
}
}
xhr.open(obj.method,obj.url,obj.async);
xhr.send(null);
}
// use ajax
addEventListener("click",function(){
ajax({
method:"GET",
url:"test.php",
data:{
"na&me":"ping",
"age":18
},
// 将对象传到text,然后对象又回调
success:function(text)
{
console.log("接收success数据为:"+text);
},
async:true
});
},false);