回归下原生js,网上看到的AJAX封装,遂拿来改改,不知还有何弊端,望指出! 1 var ajaxHelper = { 2 /*1.0 浏览器兼容的方式创建异步对象*/ 3 makeXHR: function () { 4 //声明 ...
回归下原生js,网上看到的AJAX封装,遂拿来改改,不知还有何弊端,望指出!
1 var ajaxHelper = { 2 /*1.0 浏览器兼容的方式创建异步对象*/ 3 makeXHR: function () { 4 //声明异步对象变量 5 var false; 6 //声明 扩展 名 7 var ]; 8 //判断浏览器是否支持 9 if (window.10 new 11 }12 //否则,只能循环遍历老式浏览器异步对象名,尝试创建,知道创建成功为止13 else if (window.ActiveXObject) {14 for (i = 0; i < ) {15 new ActiveXObject(16 if (17 break;18 }19 }20 }21 //判断 异步对象 是否创建 成功,如果 成功,则返回异步对象,否则返回false22 return false;23 },24 /*2.0 发送Ajax请求*/25 doAjax: function (method, url, data, isAyn, callback, type) {26 method = method.toLowerCase();27 //2.1创建异步对象28 var xhr = this.makeXHR();29 //2.2设置请求参数(如果是get,则带url参数,如果不是,则不带)30 xhr.open(method, url + (method == "get" ? "?" + data : ""), isAyn);31 //2.3根据请求谓词(get/post),添加不同的请求头32 if (method == "get") {33 xhr.setRequestHeader("If-Modified-Since", 0);34 } else {35 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");36 }37 //2.4设置回调函数38 xhr.onreadystatechange = function () {39 //如果接受完毕 服务器发回的 响应报文40 if (xhr.readyState == 4) {41 //判断状态码是否正常42 if (xhr.status == 200) {43 if (type.toLowerCase() == "json") {44 var ret = {};45 try {46 if (JSON) {47 ret = JSON.parse(xhr.responseText);48 } else {49 //IE8以下不支持JSON50 ret = new Function("return " + xhr.responseText);51 }52 callback(ret);53 } catch (e) {54 console.log(e.message);55 callback(false);56 }57 } else {58 //直接返回文本59 callback(xhr.responseText);60 }61 } else {62 console.log("AJAX Status Code:" + xhr.status);63 callback(false);64 }65 }66 };67 //2.5发送(如果是post,则传参数,否则不传)68 xhr.send(method != "get" ? data : null);69 },70 /*3.0 直接发送Post请求*/71 doPost: function (url, data, isAyn, callback, type) {72 this.doAjax("post", url, data, isAyn, callback, type);73 },74 /*4.0 直接发送Get请求*/75 doGet: function (url, data, isAyn, callback, type) {76 this.doAjax("get", url, data, isAyn, callback, type);77 }78 };
原标题:原生AJAX封装
关键词:ajax
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。