JavaScript自己封装ajax的js
程序员文章站
2022-05-01 12:20:14
...
[javascript] /** * 执行基本ajax请求,返回XMLHttpRequest * Ajax.request({ * url * async 是否异步 true(默认) * method 请求方式 POST or GET(默认) * data 请求参数 (键值对字符串) * success 请求成功后响应函数,参数为xhr * error 请求失败后响应函数,参数为xhr * }); */ www.2cto.com Ajax = function() { function request(opt) { function fn() { } var url = opt.url || ""; var async = opt.async !== false, method = opt.method || 'GET', data = opt.data || null, success = opt.success || fn, error = opt.failure || fn; method = method.toUpperCase(); if (method == 'GET' && data) { var args = ""; if(typeof data == 'string'){ //alert("string") args = data; }else if(typeof data == 'object'){ //alert("object") var arr = new Array(); for(var k in data){ var v = data[k]; arr.push(k + "=" + v); } args = arr.join("&"); } url += (url.indexOf('?') == -1 ? '?' : '&') + args; data = null; } var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); xhr.onreadystatechange = function() { _onStateChange(xhr, success, error); }; xhr.open(method, url, async); if (method == 'POST') { xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded;'); } xhr.send(data); return xhr; } function _onStateChange(xhr, success, failure) { if (xhr.readyState == 4) { var s = xhr.status; if (s >= 200 && s < 300) { success(xhr); } else { failure(xhr); } } else { } } return { request : request }; }(); [javascript] Ajax.request({ url : path + "/report/topn/topn_data.jsp", data : { datatype : datatype }, success : function(xhr) { onData(xhr.responseText); }, error : function(xhr) { } });
推荐阅读
-
javascript中的对象创建 实例附注释_js面向对象
-
js以对象为索引的关联数组_javascript技巧
-
js获取select默认选中的Option并不是当前选中值_javascript技巧
-
iframe子页面与父页面在同域或不同域下的js通信_javascript技巧
-
JS实现的数组全排列输出算法_javascript技巧
-
js下通过prototype扩展实现indexOf的代码_javascript技巧
-
js 显示base64编码的二进制流网页图片_javascript技巧
-
js实现翻页后保持checkbox选中状态的实现方法_javascript技巧
-
js如何实现设计模式中的模板方法_javascript技巧
-
JS控制表单提交的方法_javascript技巧