var xmlHttp;
var ShowBox;

function SendGet(Vstr,ObjBox)
//Vstr 文件地址及参数

//ObjBox 显示区域
{
	ShowBox = document.getElementById(ObjBox);
	
	if (Vstr.length >0)
	{
		var url=Vstr+"&sid="+Math.random();
		xmlHttp=GetXmlHttpObject(stateChanged);
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
	else
	{
		ShowBox.innerHTML="Loading..."
	} 
}

function SendPost(Url,Vstr,ObjBox)
//Url	作用：文件地址

//Vstr	作用：参数串 事先构建
//		结构：Vstr = "参数名=参数值&参数名=参数值……"
//		注意：参数值不能包含“&”符号，可以使用 “参数值.replace("&","%26")”替换

//ObjBox作用：数据显示区域
{
	ShowBox = document.getElementById(ObjBox);
	xmlHttp=GetXmlHttpObject(stateChanged);
	xmlHttp.open("POST",Url,false);
	xmlHttp.setrequestheader("content-length",Vstr.length);
	xmlHttp.setrequestheader("content-type","application/x-www-form-urlencoded;charset=GB2312");
	xmlHttp.send(Vstr);
}

function stateChanged()
{ 
	if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete")//如果xmlHttp的加载状态时完成
	{
		Vstr = xmlHttp.responseText;	
		ShowBox.innerHtml = Vstr;
	} 
}

function GetXmlHttpObject(handler)//创建一个对象 并接受一个 handler 参数 handler 参数其实是一个 stateChanged() 方法。
{//这个handler参数容易让人看糊涂。其实这个参数里边包含的方式，是在xmlHTTP对象创建成功以后才被使用的。在创建对象的时候并不用他。

	var objXmlHttp = null;

	if (navigator.userAgent.indexOf("Opera")>=0)//这个例子不能运行在Opera浏览器中
	{
		alert("This example doesn't work in Opera");
		return;
	}

	if (navigator.userAgent.indexOf("MSIE")>=0)//如果是Ie浏览器 则执行如下操作。
	{
		var strName="Msxml2.XMLHTTP";//ActiveXObject 对象的名称，基于非5.5的IE浏览器
		
		if (navigator.appVersion.indexOf("MSIE 5.5")>=0)//如果是5.5的IE浏览器。则创建不同的XML名称字符串
		{
			strName="Microsoft.XMLHTTP";
		} 
		
		try//异常处理、创建objXmlHttp对象。就是一个IE能用的 xmlhttp对象。
		{
			objXmlHttp=new ActiveXObject(strName);//创建xmlHTTP对象
			objXmlHttp.onreadystatechange=handler;//当对象创建完成时加载函数 stateChanged()
			return objXmlHttp;//返回xmlHTTP对象
		}
		catch(e)//如果不能创建 xml对象则弹出错误信息。
		{ 
			alert("Error. Scripting for ActiveX might be disabled");
			return;
		} 
	} 
	
	if (navigator.userAgent.indexOf("Mozilla")>=0)//如果是非IE阵营的浏览器则用如下方法创建xmlHTML对像
	{
		objXmlHttp=new XMLHttpRequest()//创建一个对象
		objXmlHttp.onload=handler//当对象创建完成时加载函数 stateChanged()
		objXmlHttp.onerror=handler //当对象发生错误时后加载函数 stateChanged()
		return objXmlHttp//返回对象
	}
}