js 原生 ajax

时间:2022-03-28 03:39:10
//js  ajax
function Ajax(url,type,data,comFun,sucFun,errFun)
{
//1、创建XMLHttpRequest对象
var xmlHttpRequest; if(window.ActiveXObject) //IE低版本
{
xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest)//Firefox等
{
xmlHttpRequest = new XMLHttpRequest();
} //2、创建连接
xmlHttpRequest.open(type, url, true); //处理post请求参数
var params = null;
if(type.toLowerCase()=="post")
{
//post方式要设置请求类型
xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); if(typeof data=="string")
{
params = data;
}
else
{
var arr = [];
for(var k in data)
{
arr.push(k+"="+data[k]);
}
params = arr.join("&");
}
}
else
{
//如果是get请求 send方法中的参数为null
params = null;
} //3、发送请求
xmlHttpRequest.send(params); //4、接受服务器响应结果
xmlHttpRequest.onreadystatechange = function()
{
// readyState值说明
// 0,初始化,XHR对象已经创建,还未执行open
// 1,载入,已经调用open方法,但是还没发送请求
// 2,载入完成,请求已经发送完成
// 3,交互,可以接收到部分数据 if (xmlHttpRequest.readyState == 4) {
//complete: 请求完成时执行的函数
//complete();
comFun("请求完成......"); // status值说明
// 200:成功
// 404:没有发现文件、查询或URl
// 500:服务器产生内部错误 if(xmlHttpRequest.status == 200)
{
//success: 请求成功时执行的函数
//success();
var text = xmlHttpRequest.responseText;
sucFun(text);
}
else
{
//error: 请求失败时执行的函数
//error();
errFun("服务器错误......");
}
} }
}