Microsoft.XMLHTTP

含義Microsoft.XMLHttp組件的屬性方法

方法

Open( bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword )

varAsync: 是否異步執行。預設為True,即異步執行。False,為同步執行。

bstrPassword:用戶口令,可省略。

Send( varBody )

varBody:指令集。可以是XML格式數據,也可以是字元串,流,或者一個無符號整數數組。也可以省略,讓指令通過Open方法的URL參數代入。

setRequestHeader( bstrHeader, bstrvalue )

bstrHeader:HTTP 頭(header)

bstrvalue: HTTP 頭(header)的值

如果Open方法定義為POST,可以定義表單方式上傳:

xmlhttp.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded")

屬性

onreadystatechange:在異步執行方式下獲得返回結果的事件句柄。只能在DOM中調用。

responseBody: 結果返回為無符號整數數組。

responseStream: 結果返回為IStream流。

responseText : 結果返回為字元串。

responseXML: 結果返回為XML格式數據。

具體的使用方法

創建XMLHTTP對象的語句如下:

Set objXML = CreateObject("Msxml2.XMLHTTP") 或Set objXML = CreateObject("Microsoft.XMLHTTP")'Or for version 3.0 of XMLHTTP, use:'Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")

對象創建後調用Open方法對Request對象進行初始化,語法格式為:

objXML.Open(http-method,url,async,userID,password)

Open方法中包含了5個參數,前三個是必要的,後兩個是可選的(在伺服器需要進行身份驗證時提供)。參數的含義如下所示:

http-method:HTTP的通信方式,比如GET或是POST

url:接收XML數據的伺服器的URL地址。通常在URL中要指明ASP或CGI程式

async:一個布爾標識,說明請求是否為異步的。如果是異步通信方式(true),客戶機就不等待伺服器的回響;如果是同步方式(false),客戶機就要等到伺服器返回訊息後才去執行其他操作

userID:用戶ID,用於伺服器身份驗證

password:用戶密碼,用於伺服器身份驗證

XMLHTTP對象的Send方法

用Open方法對Request對象進行初始化後,調用Send方法傳送XML數據:

objXML.send()

Send方法的參數類型是Variant,可以是字元串、DOM樹或任意數據流。

傳送數據的方式分為同步和異步兩種。在異步方式下,數據包一旦傳送完畢,就結束Send進程,客戶機執行其他的操作;而在同步方式下,客戶機要等到伺服器返回確認訊息後才結束Send進程。

XMLHTTP對象中的readyState屬性其能夠反映出伺服器在處理請求時的進展狀況。客戶機的程式可以根據這個狀態信息設定相應的事件處理方法。屬性值及其含義如下表所示:

值 說明

0  Response對象已經創建,但XML文檔上載過程尚未結束

1  XML文檔已經裝載完畢

2  XML文檔已經裝載完畢,正在處理中

3  部分XML文檔已經解析

4  文檔已經解析完畢,客戶端可以接受返回訊息

客戶機處理回響信息,客戶機接收到返回訊息後,進行簡單的處理,基本上就完成了C/S之間的一個互動周期。

客戶機接收回響是通過XMLHTTP對象的屬性實現的:

responseText:將返回訊息作為文本字元串;

responseBody:將返回訊息作為HTML文檔內容;

responseXML:將返回訊息視為XML文檔,在伺服器回響訊息中含有XML數據時使用;

responseStream:將返回訊息視為Stream對象

以下是一個簡單的例子:類似新聞小偷

<%

Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")

objXML.open "GET","",false

objXML.send()

response.write(objXML.responseText)

%>

使用步驟

1、創建XMLHTTP對象 //需MSXML4.0支持

2、打開與服務端的連線,同時定義指令傳送方式,服務網頁(URL)和請求許可權等。客戶端通過Open命令打開與服務端的服務網頁的連線。與普通HTTP指令傳送一樣,可以用"GET"方法或"POST"方法指向服務端的服務網頁。

3、傳送指令。

4、等待並接收服務端返回的處理結果。

5、釋放XMLHTTP對象

方法

使用例子

Ajax中,js端主要包括以下處理環節。

建立XMLHttpRequest對象

從 Web表單中獲取需要的數據。

建立要連線的 URL。

打開到伺服器的連線。

設定伺服器在完成後要運行的函式。

傳送請求。

例子代碼為:

function callServer() {

var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

var city = document.getElementById("city").value;

var state = document.getElementById("state").value;

var url = "/scripts/getZipCode.php?city=" + escape(city) + "&state=" + escape(state);

xmlHttp.open("GET", url, true);

xmlHttp.onreadystatechange = updatePage;//回調函式

xmlHttp.send(null);

}

function updatePage() {

if (xmlHttp.readyState == 4) {

var response = xmlHttp.responseText;

document.getElementById("zipCode").value = response;

}

}

相關詞條

熱門詞條

聯絡我們