JavaScript - ajax请求的初步封装
2016-07-04 14:52
375 查看
在封装js开发包的时候,需要发送ajax请求,又不能强制用户使用jQuery,因此按照jQuery的风格,封装了一个ajax,
将此成果小小的记录一下
其中可能存在不完善和不合理之处,如有发现,请不吝赐教
将此成果小小的记录一下
BigMap.ajax = function(options) { if (!options.url) { throw "url is empty"; } var xmlHttp; try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");//IE高版本创建XMLHTTP } catch(E) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//IE低版本创建XMLHTTP } catch(E) { xmlHttp = new XMLHttpRequest();//兼容非IE浏览器,直接创建XMLHTTP对象 } } options.type = (options.type || "GET").toUpperCase(); options.dataType = options.dataType || "json"; options.async = options.async == undefined ? true : options.async; options.data = (function(data){ if (data) { var arr = []; for (var name in data) { arr.push(encodeURIComponent(name) + "=" + encodeURIComponent(data[name])); } arr.push(("t=" + Math.random()).replace(".","")); return arr.join("&"); } else { return null; } })(options.data); xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { var response; if (options.dataType == "json") { try{ response = eval("(" + xmlHttp.responseText + ")"); } catch(e) { options.error && options.error("JSON parsing failed"); } } else { response = xmlHttp.responseText } options.success && options.success(response); } else { options.error && options.error("Server error"); } } } if (options.type == "GET") { xmlHttp.open("GET", options.url + "?" + options.data, options.async); xmlHttp.send(null); } else if (options.type == "POST") { xmlHttp.open("POST", options.url, options.async); xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlHttp.send(options.data); } }
其中可能存在不完善和不合理之处,如有发现,请不吝赐教
相关文章推荐
- Ajax
- $.ajax()方法详解
- jQuery ajax - ajax() 方法
- 使用Ajax实现异步用户名验证
- 使用ajax实现用户登录验证(升级版)
- 解决Ajax悬停效果,无法遮蔽FLASH的问题
- 再谈Jquery Ajax方法传递到action(补充)
- Dom在ajax技术中的作用说明
- AJAX实现瀑布流触发分页与分页触发瀑布流的方法
- 使用Ajax实时检测"用户名、邮箱等"是否已经存在
- 探讨Ajax中同步与异步之间的区别
- ajax中data传参的两种方式分析
- 原生AJAX写法实例分析
- 探秘ajax跨域请求
- Ajax实现简单下拉选项效果【推荐】
- JQuery ajax返回JSON时的处理方式 (三种方式)
- Ajax中浏览器和服务器交互详解
- jQuery AJAX实现调用页面后台方法
- ajax实现点击不同的链接让返回的内容显示在特定div里
- 在Ajax中使用get和post所遇到的问题及解决办法