JavaScript - ajax请求的初步封装
来源:互联网 发布:制作视频剪辑的软件 编辑:程序博客网 时间:2024/05/16 01:00
在封装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); }}
其中可能存在不完善和不合理之处,如有发现,请不吝赐教
0 0
- JavaScript - ajax请求的初步封装
- Javascript封装原生ajax请求
- 封装兼容的Ajax请求
- Ajax的初步认识和封装
- javascript封装的ajax函数库
- jquery封装的ajax的请求
- jquery的封装ajax的get请求
- javascript的ajax异步请求
- javascript的ajax请求过程
- AJAX GetAndPost请求的完整封装
- Ajax请求GET/POST方法的封装
- fetch下一代ajax请求数据的封装
- Ajax请求GET/POST方法的封装
- 链式封装ajax请求的Promise
- jquery封装ajax的post请求
- 原生JS封装的ajax请求
- javascript ajax请求封装和微信分享通用代码
- AJAX异步请求封装
- Gradle基础——Groovy语言
- RT-thread组件初始化代码分析
- java bean 代码生成器
- 【MyEclipse】——MyEclipse has detected that less than 5% of the 28M of PS Survivor Space...
- RT-thread main函数分析
- JavaScript - ajax请求的初步封装
- gitHub如何切换到非master分支的其他分支
- RT-thread finsh组件工作流程
- 字符串查找-普通方法和KMP(普拉特操作)介绍
- Unicode、UTF-8 和 ISO8859-1到底有什么区别
- Struts2的简单总结(4)
- 逆序对问题
- RT-thread 设备驱动组件之PIN设备
- javaScript基础学习(7)(获取方法名)