Ajax封装技术
/**
*
* @param method 表示提交的方式
* @param url 表示提交的地址
* @param params 表示提交的参数 key=val&key1=val1&.....
* @param handler200 处理成功
* @param handler404 处理资源未找到
* @param handler500 处理服务器错误
* @param loading 加载效果
*
* ajaxutil("get","ajax?age=12","username=lisi&password=123123")
*
*
*
*/
function ajaxutil(method,url,params,handler200,handler404,handler500,loading){
method = method || "get";
url = url || "";
//创建一个请求对象
var request;
//为了处理浏览器的差异性问题
//第一个更通用 判断window对象中是否含有 XMLHttpRequest对象 如果有 则直接new出来使用
//如果没有 则表示是ie浏览器 要采用特殊的方式进行创建
if(window.XMLHttpRequest){
//创建对象
request = new XMLHttpRequest();
}else if(window.ActiveXObject){
request = new ActiveXObject("Msxml2.XMLHTTP");
}
//监听
request.onreadystatechange =function(){
if(request.readyState == 4){
//处理成功请求
if(request.status == 200){
if(typeof handler200 == 'function'){
handler200(request.responseText);
}
}else if(request.status == 404){
if(typeof handler404 == 'function'){
handler404();
}
}
else if(request.status == 500){
if(typeof handler500 == 'function'){
handler500(request.responseText);
}
}
}else{
if(typeof loading == 'function'){
loading();
}
}
};
//get方式提交
if(method.toLowerCase() == "get"){
//先判断参数有没有 如果有 才处理地址 如果没有 不管
if(params){
url = url+((url.indexOf('?')==-1)?"?":"&")+params;
}
request.open(method, url);
request.send(null);
}else if(method.toLowerCase() == "post"){
request.open(method, url);
//设置编码方式
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.send(params||null);
}
}