加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ajax封装

发布时间:2020-12-15 22:00:44 所属栏目:百科 来源:网络整理
导读:// 创建XHRfunction createXHR(){if (typeof XMLHttpRequest != 'undefined'){ // W3C标准return new XMLHttpRequest();} else if (typeof ActiveXObject != 'undefined'){ // IEvar versions = ['MSXML2.XMLHttp.6.0','MSXML2.XMLHttp.3.0','MSXML2.XMLHttp
// 创建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
});
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读