微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ajax封装

// 创建XHR
function createXHR(){
if (typeof XMLHttpRequest != 'undefined'){  // W3C标准
return new XMLHttpRequest();
} else if (typeof ActiveXObject != 'undefined'){ // IE
var versions = [
'MSXML2.XMLHttp.6.0','MSXML2.XMLHttp.3.0','MSXML2.XMLHttp'
];
for (var i=0; i<versions.length; i++){
try{
return new ActiveXObject(versions[i]);
} catch (e){
}
}
} else {
throw new Error("您的浏览器不支持XHR对象!");
}
}
// 将json对象转换为json字符串,并以&连接
function params(data){
var strArr = [];
for (var i in data){
strArr.push(encodeURIComponent(i) + "=" + encodeURIComponent(data[i]));
}
return strArr.join("&");
};
//Ajax封装
function ajax(obj){
var xhr = createXHR();
obj.data = params(obj.data);
if (obj.method=='get'){
obj.url += obj.url.indexOf("?")==-1? "?"+data : data;
} else if (obj.method=='post'){
obj.url = obj.url;
}
if (obj.async == true){ // 异步
xhr.onreadystatechange = function(){
if (xhr.readyState === 4){
callback();
}
}
} else if (obj.async == false){ // 同步
callback();
}
xhr.open(obj.method,obj.url,obj.async);
if (obj.method == 'get'){
xhr.send(null);
} else if (obj.method == 'post'){
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send(obj.data);
}
function callback(){
if(xhr.status == 200){ //如果返回成功了
obj.success(xhr.responseText); // 回调函数
}else{
alert('数据返回失败!状态代码:' +xhr.status+'状态信息:' +xhr.statusText);
}
}
}

调用ajax()方法

// Ajax 调用
var callAjax = function(){
ajax({
method: "post",url: "ajax.PHP",data: {
"name": "wuguojun","age": 24
},success: function(result){
alert(result);
},async: true
});
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐