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

定义一个公共方法,打造自己的AJAX框架

发布时间:2020-12-16 00:26:02 所属栏目:百科 来源:网络整理
导读:var $ =function(){} $.createXHR = function(){ if (typeof XMLHttpRequest != "undefined"){ return new XMLHttpRequest(); } else if (typeof ActiveXObject != "undefined"){ if (typeof arguments.callee.activeXString != "string"){ var versions = [

var $ =function(){}

$.createXHR = function(){

if (typeof XMLHttpRequest != "undefined"){
return new XMLHttpRequest();
} else if (typeof ActiveXObject != "undefined"){
if (typeof arguments.callee.activeXString != "string"){
var versions = [ "MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0",
"MSXML2.XMLHttp"],
i,len;
for (i=0,len=versions.length; i < len; i++){
try {
new ActiveXObject(versions[i]);
arguments.callee.activeXString = versions[i];
break;
} catch (ex){
//跳过
}
}
}
return new ActiveXObject(arguments.callee.activeXString);
} else {
throw new Error("No XHR object available.");
}

}


// 封装AJAX // options,定义: // success的方法 : $.ajax = function(options){ // http // XmlHttpRequest var xhr = $.createXHR(); xhr.onreadystatechange = function(){ //数据接收完成 // console.log(xhr.readyState); // 如果 ,接收成功 if(xhr.readyState == 4){ // 要判断 是不是 200 的值 ,状态码,只有为200的时候 ,才可以去解析 // 返回的是正确的数据 if(xhr.status==200){ // 返回文本 var text = xhr.responseText; // eval 方法 , JS的解析器 eval("var jsonObj = " + text); // 执行定义的函数 options.success(jsonObj); } } }; // var sendData = "timestamp="+(+new Date) + "&name=1111&age=22&sex=1"; var sendData = "timestamp="+(+new Date) ; if(options.data){ for(var propertyName in options.data){ sendData = sendData + "&" +propertyName + "=" + options.data[propertyName]; } } // console.log(sendData); var url = options.url; if(options.method=="get"){ url = url + "?" + sendData; } // 准备数据 , 发送ajax xhr.open(options.method,url); // xhr.open("get","user.xml"); if(options.method == "post"){ xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); } // 1 // localhost:8080/hospitalpro/addServlet?name=1111&age=22&sex=1 if(options.method == "post"){ // 真正的发送 xhr.send(sendData); } if(options.method == "get"){ xhr.send(null); } };

(编辑:李大同)

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

    推荐文章
      热点阅读