现在还在学习中,试着重新做了一个AJAX原生的封装

/**
* @param data 数据发送的方式,用字符串形式传入
* @param fun 当响应状态返回全部正确时所执行的函数
*/
function sendAJAX(data,fun){
var xm = null;
if(window.ActiveXObject){
xm = new ActiveXObject("Micrsoft.XMLHTTP");
}
else if(window.XMLHttpRequest){
xm = new XMLHttpRequest();
}
if(xm != null){
xm.onreadystatechange = function(){
if(xm.readyState == 4 && xm.status == 200){
if(fun){//如果存在回调函数fun则执行下面
fun(xm)
}
}
};
var reg = /^\/\w*(\?|#)+(\w*=+\w*)+((\&\w*=\w*)|(\&\w*=\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*))*$|^\/\w*(\?|#)+$/;
        if(!reg.test(data)){//判断传入的data是否满足AJAX的数据格式
alert("传输数据格式错误")//如果不满足就报错
}
else{//如果满足则执行下面代码
if(data.indexOf("#") != -1){//如果为#则执行POST发送方式
var urlS = data.split("#");
xm.open("post",urlS[0]);
xm.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xm.send(urlS[1])
}
else{//如果为?则执行POST发送方式
xm.open("get",data);
xm.send();
}
}
}
else{
alert("您的浏览器不支持此代码")
}

}

 

可能还有考虑的不是很周全的地方,想到了再继续改进

posted @ 2014-11-30 12:21  xfengcao_lf  阅读(129)  评论(0)    收藏  举报