[JavaScript]一个非常标准的发送XMLHTTP请求的Javascript程序[转载]
转载自: http://hi.baidu.com/yydriver/blog/item/2f5ffc45f8bcbc2dcffca3d9.html
写一个XmlHttp请求的脚本程序不困难,可以用二三行就写完.
但是每次写的时候都会发现,有一点的不足,可重用性也不高.
于是,在考虑到各种浏览器如IE7,Mozilla,FireFox,IE6,IE5的情况下,由于Vbscript不太受Jsp,Php等程序的欢迎,
于是写了一个Javascript的XmlHttp程序.
程序,基本上达到了实用性和重用性的高度结合.
使用时,可以把程序放在一个.js文件中.
/********************************************************************
* 函数名称: SendXmlHttp()
* 功能描述: 该函数通过XML HTTP执行一个后台程序
* 参数说明: sURL : 后台程序的地址
* sContent : 发送的内容
* 返回值 : true : 成功
* false : 失败
********************************************************************/
function SendXmlHttp(sURL,sContent)
{
// 判断sURL是否为空,如果为空则直接返回
if ("" == sURL)
{
return false;
}
var oXMLHttp = null;
if (window.XMLHttpRequest){
// If IE7, Mozilla, Safari, etc: Use native object
oXMLHttp = new XMLHttpRequest()
}
//for window's ie5,ie6
else if(window.ActiveXObject)
{
oXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
// 判断IE是否支持使用ActiveXObject
if(oXMLHttp!=null)
{
// 捕捉异常
try
{
oXMLHttp.open("POST",sURL,false);
//发送大量数据时,可以用下面的的sContent
oXMLHttp.setRequestHeader("Content-Length",sContent.length);
oXMLHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
oXMLHttp.send(sContent);
if (200 == oXMLHttp.status)
{
if ("ok" == oXMLHttp.responseText)
{
// 发送并执行成功,返回true
return true;
}
else
{
// 执行sURL时发生错误,返回false
return false;
}
}
else
{
// 发送数据到服务器端失败,返回false
alert("Problem retrieving XML data:" + oXMLHttp.statusText);
return false;
}
}
catch(e)
{
// 出现异常,返回false
alert(e.message);
return false;
}
}
else
{
// 浏览器不支持XMLHTTP,返回false
alert("Your browser does not support XMLHTTP.");
return false;
}
}