封装原生ajax
2017-11-20 14:42
330 查看
将原生ajax进行封装
function ajax() { var ajaxData = { type: arguments[0].type || "GET", url: arguments[0].url || "", async: arguments[0].async || "true", data: arguments[0].data || null, dataType: arguments[0].dataType || "text", contentType: arguments[0].contentType || "application/x-www-form-urlencoded", beforeSend: arguments[0].beforeSend || function() {}, success: arguments[0].success || function() {}, error: arguments[0].error || function() {} } ajaxData.beforeSend() var xhr = createxmlHttpRequest(); xhr.responseType = ajaxData.dataType; xhr.open(ajaxData.type, ajaxData.url, ajaxData.async); xhr.setRequestHeader("Content-Type", ajaxData.contentType); xhr.send(convertData(ajaxData.data)); xhr.onreadystatechange = function() { if(xhr.readyState == 4) { if(xhr.status == 200) { ajaxData.success(xhr.response) } else { ajaxData.error() } } } } function createxmlHttpRequest() { if(window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP"); } else if(window.XMLHttpRequest) { return new XMLHttpRequest(); } } function convertData(data) { if(typeof data === 'object') { var convertResult = ""; for(var c in data) { convertResult += c + "=" + data[c] + "&"; } convertResult = convertResult.substring(0, convertResult.length - 1) return convertResult; } else { return data; } }
ajax实现,写起来和jQuery差不多
ajax({ type: "POST", url: "http://share.vr39.com/rest/link/importUserPanoramData", dataType: "json", data: { "viewUuid": data }, beforeSend: function() { //some js code }, success: function(msg) { alert(msg.message) }, error: function() { alert("error") } });
相关文章推荐
- 封装原生ajax(缓存+xhr单例)
- [JavaScript][AJAX][JQuery]利用回调接口封装AJAX类|原生JavaScript的AJAX写法优化
- 原生js封装ajax方法
- 基于ajax和jsonp的原生封装(实例)
- 原生JS封装Ajax
- Ajax原生封装
- 自己做工具--用原生js封装一个AJAX插件
- 原生 ajax 封装
- 原生封装ajax
- 原生js封装ajax,实现跨域请求
- ajax和jsonp的原生封装
- 原生JS封装Ajax插件(同域、jsonp跨域)
- 用原生javascript封装ajax技术
- 原生JavaScript实现Ajax(三):ajax函数的最终封装
- 原生ajax封装(自学简单版)
- js原生Ajax 的封装和原理
- 如何用原生JS封装Ajax
- 原生js实现对Ajax的封装(模仿jquery)
- 城市三级联动 AJAX-原生js封装
- 原生封装ajax