方法
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;
}
}