轉載自: 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;
}
}