定义一个公共方法,打造自己的AJAX框架
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); } }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |