您的位置:首页 > 其它

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

2014-11-30 12:21 411 查看
/**
* @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("您的浏览器不支持此代码")
}

}


可能还有考虑的不是很周全的地方,想到了再继续改进
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐