首页 > 代码库 > Ajax封装库
Ajax封装库
<script type="text/javascript">var AjaxUtil = { // 基础选项 options : { method : "get", // 默认提交的方法,get post url : "", // 请求的路径 required params : {}, // 请求的参数 type : ‘text‘, // 返回的内容的类型,text,xml,json callback : function() { }// 回调函数 required }, // 创建XMLHttpRequest对象 createRequest : function() { var xmlhttp; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");// IE6以上版本 } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");// IE6以下版本 } catch (e) { try { xmlhttp = new XMLHttpRequest(); if (xmlhttp.overrideMimeType) { xmlhttp.overrideMimeType("text/xml"); } } catch (e) { alert("您的浏览器不支持Ajax"); } } } return xmlhttp; }, // 设置基础选项 setOptions : function(newOptions) { for ( var pro in newOptions) { this.options[pro] = newOptions[pro]; } }, // 格式化请求参数 formateParameters : function() { var paramsArray = []; var params = this.options.params; for ( var pro in params) { var paramValue = params[pro]; /*if(this.options.method.toUpperCase() === "GET") { paramValue = http://www.mamicode.com/encodeURIComponent(params[pro]);>*/ paramsArray.push(pro + "=" + paramValue); } return paramsArray.join("&"); // method=get&url=&callback=&type=text }, // 状态改变的处理 readystatechange : function(xmlhttp) { // 获取返回值 var returnValue; if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { switch (this.options.type) { case "xml": returnValue = xmlhttp.responseXML; break; case "json": var jsonText = xmlhttp.responseText; if(jsonText){ returnValue = eval("(" + jsonText + ")"); } break; default: returnValue = xmlhttp.responseText; break; } if (returnValue) { this.options.callback.call(this, returnValue); } else { this.options.callback.call(this); } } }, // 发送Ajax请求 //{‘method‘:‘get‘} request : function(options) { var ajaxObj = this; // 设置参数 ajaxObj.setOptions.call(ajaxObj, options); // 创建XMLHttpRequest对象 var xmlhttp = ajaxObj.createRequest.call(ajaxObj); // 设置回调函数 xmlhttp.onreadystatechange = function() { ajaxObj.readystatechange.call(ajaxObj, xmlhttp); }; // 格式化参数 var formateParams = ajaxObj.formateParameters.call(ajaxObj); // 请求的方式 var method = ajaxObj.options.method; var url = ajaxObj.options.url; if ("GET" === method.toUpperCase()) { url += "?" + formateParams; } // 建立连接 xmlhttp.open(method, url, true); if ("GET" === method.toUpperCase()) { xmlhttp.send(null); } else if ("POST" === method.toUpperCase()) { // 如果是POST提交,设置请求头信息 xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlhttp.send(formateParams); } }}; function $(id) { return document.getElementById(id); } function process(json){ if(json){ $("id").value = json.id; $("username").value = json.username; $("age").value = json.age; } else{ $("msg").value = "用户不存在"; $("id").value = ""; $("username").value = ""; $("age").value = ""; } } function findUser() { var userid = $("userid").value; if (userid) { AjaxUtil.request({ url:"ajax-07.txt", params:{id:userid}, type:‘json‘, callback:process }); } } </script>
Ajax封装库
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。