加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax

发布时间:2020-12-15 22:00:19 所属栏目:百科 来源:网络整理
导读:script type="text/javascript"var URL = "xxxx";//使用literal语法定义一个对象:XMLHttpvar XMLHttp = {//定义第一个属性,该属性用于缓存XMLHttpRequest对象的数组XMLHttpRequestPool: [],//对象的第一个方法,该方法用于返回一个XMLHttpRequest对象getIn
<script type="text/javascript">


var URL = "xxxx";


//使用literal语法定义一个对象:XMLHttp
var XMLHttp = 
{
	//定义第一个属性,该属性用于缓存XMLHttpRequest对象的数组
	XMLHttpRequestPool: [],//对象的第一个方法,该方法用于返回一个XMLHttpRequest对象
	getInstance:function()
	{
	
		// 从XMLHttpRequest对象池中取出一个空闲的XMLHttpRequest
		for (var i = 0; i < this.XMLHttpRequestPool.length; i ++)
		{
		 //alert("this.XMLHttpRequestPool.length:"+this.XMLHttpRequestPool.length);
			//如果XMLHttpReuqest的readyState为0,或者为4,
			//都表示当前的XMLHttpRequest对象为闲置的对象
			if (this.XMLHttpRequestPool[i].readyState == 0 || 
				this.XMLHttpRequestPool[i].readyState == 4)
			{
				return this.XMLHttpRequestPool[i];
			}
		}
		//如果没有空闲的,将再次创建一个新的XMLHttpRequest对象
		this.XMLHttpRequestPool[this.XMLHttpRequestPool.length] 
			= this.createXMLHttpRequest();
		//返回刚刚创建的XMLHttpRequest对象
		return this.XMLHttpRequestPool[this.XMLHttpRequestPool.length - 1];
	},//创建新的XMLHttpRequest对象
	createXMLHttpRequest:function()
	{
		//对于DOM 2 规范的浏览器
		if (window.XMLHttpRequest)
		{
			var objXMLHttp = new XMLHttpRequest();
		}
		//对于Internet Explorer浏览器
		else
		{
			//将Internet Explorer内置的所有XMLHTTP ActiveX控制设置成数组
			var MSXML = ['MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'];
			//依次对Internet Explorer内置的XMLHTTP控件初始化,尝试创建XMLHttpRequest对象
			for(var n = 0; n < MSXML.length; n ++)
			{
				try
				{
					//如果可以正常创建XMLHttpRequest对象,使用break跳出循环
					var objXMLHttp = new ActiveXObject(MSXML[n]); 
					break;
				}
				catch(e)
				{
				}
			}
		}
		//Mozilla某些版本没有readyState属性
		if (objXMLHttp.readyState == null)
		{
			//直接设置其readyState为0
			objXMLHttp.readyState = 0;
			//对于哪些没有readyState属性的浏览器,将load动作与下面的函数关联起来
			objXMLHttp.addEventListener("load",function ()
			{
				//当从服务器加载数据完成后,将readyState状态设为4
				objXMLHttp.readyState = 4;
				if (typeof objXMLHttp.onreadystatechange == "function")
				{
					objXMLHttp.onreadystatechange();
				}
			},false);
		}
		return objXMLHttp;
	},//定义对象的第三个方法: 发送请求(方法[POST,GET],地址,数据,回调函数)
	sendRequest: function (method,url,data,callback)
	{
		var objXMLHttp = this.getInstance();
		with(objXMLHttp)
		{
			try
			{
				//增加一个额外的randnum请求参数,用于防止IE缓存服务器响应
				if (url.indexOf("?") > 0)
				{
					url += "&randnum=" + Math.random();
				}
				else
				{
					url += "?randnum=" + Math.random();
				}
				
				//打开与服务器的连接
				
				open(method,true);
				//对于使用POST请求方式
				if (method == "POST")
				{
					// 设定请求头
					setRequestHeader('Content-Type','application/x-www-form-urlencoded');
						
					send(data);
				}
				//对于采用GET请求
				if (method == "GET")
				{
					send(null);
				}
				//设置状态改变的回调函数
				onreadystatechange = function ()
				{
				
					//当服务器的相应完成时,以及获得了正常的服务器响应
					if (objXMLHttp.readyState == 4 &&
						(objXMLHttp.status == 200 || 
							objXMLHttp.status == 304))
					{
						//当响应时机成熟时,调用回调函数处理响应
						
						callback(objXMLHttp);
					}
				}
			}
			catch(e)
			{
				alert(e);
			}
		}
	}
};




var reqData = 'req={"schema" : "personal","type" : "公用信息","@注册弹框提示语" : "?","@注册弹框提示语标识" : "?","@提现银行卡提示语":"?","@提现银行卡列表" :"@@1"}';






XMLHttp.sendRequest("POST",URL,reqData,callbackSucc);
function callbackSucc(msg){
  document.write(JSON.stringify(msg));
  
}




</script>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读