原生js ajax
2015-11-23 17:08
651 查看
var ajax = { // 使用原生js 封装ajax // 兼容xhr对象 createXHR: function () { if (typeof XMLHttpRequest != "undefined") { // 非IE6浏览器 return new XMLHttpRequest(); } else if (typeof ActiveXObject != "undefined") { // IE6浏览器 var version = [ "MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp" ]; for (var i = 0; i < version.length; i++) { try { return new ActiveXObject(version[i]); } catch (e) { //跳过 } } } else { throw new Error("您的系统或浏览器不支持XHR对象!"); } }, // 转义字符 params: function (data) { var arr = []; for (var i in data) { arr.push(encodeURIComponent(i) + "=" + encodeURIComponent(data[i])); //arr.push(i + "=" + (data[i])); } return arr.join("&"); }, // 封装ajax sendAjax: function (obj) { var xhr = this.createXHR(); obj.url = obj.url + "?rand=" + Math.random(); // 清除缓存 //obj.data = this.params(obj.data); // 转义字符串 if (obj.method === "get") { // 判断使用的是否是get方式发送 obj.url += obj.url.indexOf("?") == "-1" ? "?" + this.params(obj.data) : "&" + this.params(obj.data); //以字符串的方式发送参数 } // 异步 if (obj.async === true) { // 异步的时候需要触发onreadystatechange事件 xhr.onreadystatechange = function () { // 执行完成 if (xhr.readyState == 4) { callBack(); } } } xhr.open(obj.method, obj.url, obj.async); // false是同步 true是异步 // "demo.php?rand="+Math.random()+"&name=ga&ga", if (obj.method === "post") { xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(JSON.stringify(obj.data)); //以json字符串的方式发送参数 } else { xhr.send(null); } // xhr.abort(); // 取消异步请求 // 同步 if (obj.async === false) { callBack(); } // 返回数据 function callBack() { // 判断是否返回正确 if (xhr.status == 200) { obj.success(xhr.responseText); } else { obj.Error("获取数据失败,错误代号为:" + xhr.status + "错误信息为:" + xhr.statusText); } } } };
相关文章推荐
- JS数据类型转换
- selenium web driver 使用JS修改input属性
- JS页面跳转和js对iframe进行页面跳转、刷新
- JavaScript中的设计模式:单例模式
- 关于table里面的checkbox选择无效的问题
- 服务器返回的list,map等类型,在JSP中取长度、取值的方法
- JS鼠标拖拽实例分析
- js生成[n,m]的随机数
- JS中自定义List
- Javascript中this关键字详解
- js使用post 方式打开新窗口,隐藏Url参数
- JS正则表达式验证数字
- JS清空input type=file内容
- 比较时间大小工具
- Javascript高级程序设计 第七章 --- 函数表达式
- JS的一些日常知识(更新中)
- js实现拖拽效果
- 关于js闭包的一些理解
- JS获取浏览器信息
- JSP 常用字符串处理表达式