原生js封装的ajax方法示例
2018-08-02 12:13
1096 查看
众所周知,框架之间会有冲突,这是源生js就起到作用了,下面介绍一种源生js封装的ajax请求。
function ajax(options) { options = options || {}; options.type = (options.type || "GET").toUpperCase(); options.dataType = options.dataType || "json"; var params = formatParams(options.data); //创建xhr对象 - 非IE6 if (window.XMLHttpRequest) { var xhr = new XMLHttpRequest(); } else { //IE6及其以下版本浏览器 var xhr = new ActiveXObject('Microsoft.XMLHTTP'); } //GET POST 两种请求方式 if (options.type == "GET") { xhr.open("GET", options.url + "?" + params, true); xhr.send(null); } else if (options.type == "POST") { xhr.open("POST", options.url, true); //设置表单提交时的内容类型 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(params); } //接收 xhr.onreadystatechange = function () { if (xhr.readyState == 4) { var status = xhr.status; if (status >= 200 && status < 300) { options.success && options.success(xhr.responseText); } else { options.fail && options.fail(status); } } } } //格式化参数 function formatParams(data) { var arr = []; for (var name in data) { arr.push(encodeURIComponent(name) + "=" + encodeURIComponent(data[name])); } arr.push(("v=" + Math.random()).replace(".","")); return arr.join("&"); }
调用方法
ajax({ url: "data.json", type: "GET", data: {}, dataType: "json", success: function (response) { // 此处放成功后执行的代码 // 解析返回的字符串 转为json对象 var usingdata = eval("("+response+")").data; } fail: function (status) { // 此处放失败后执行的代码 } });
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript中ajax操作技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- 原生JS封装ajax方法
- 原生JS封装ajax方法
- 原生JS简单实现ajax的方法示例
- js原生创建封装ajax的方法,附XMLHttpRequest状态码
- 原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
- 原生js封装ajax方法
- 用js原生方法封装跨浏览器注册事件的方法系列一(事件入门)
- 原生js实现对Ajax的封装(模仿jquery)
- 原生JS实现AJAX、JSONP及DOM加载完成事件,并提供对应方法
- 原生JS封装Ajax插件(同域、jsonp跨域)
- 原生js绑定事件方法简单封装
- AJAX学习笔记之原生JS使用方法
- 原生JS封装Ajax
- 城市三级联动 AJAX-原生js封装
- js笔记---封装自己的Ajax方法
- AJAX学习笔记之XML对象原生JS使用方法
- js 封装原生ajax
- 原生js封装的一些jquery方法(详解)
- js原生Ajax的封装与使用
- 原生js实现ajax方法(闭包)