Ajax核心:XMLHTTP组件相关技术资料

三、XMLHTTP的使用

顾名思义,XMLHTTP是个传送XML格式数据的超文本传输协议。

实际上,XMLHTTP的数据传输过程更为灵活一些:

它上传的指令可以是XML格式数据,也可以是字符串,流,或者一个无符号整数数组。还可以是URL的参数。

它下达的结果可以是XML格式数据,也可以是字符串,流,或者一个无符号整数数组。

详情可参阅文末链接。

客户端调用XMLHTTP的过程很简单,只有5个步骤:

1、创建XMLHTTP对象

2、打开与服务端的连接,同时定义指令发送方式,服务网页(URL)和请求权限等。

客户端通过Open命令打开与服务端的服务网页的连接。与普通HTTP指令传送一样,可以用"GET"方法或"POST"方法指向服务端的服务网页。

3、发送指令。

4、等待并接收服务端返回的处理结果。

5、释放XMLHTTP对象

XMLHTTP方法

Open bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword

bstrMethod:数据传送方式,即GET或POST。

bstrUrl:服务网页的URL。

varAsync:是否同步执行。缺省为True,即同步执行,但只能在DOM中实施同步执行。应用中一般将其置为False,即异步执行。

bstrUser:用户名,可省略。

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"



XMLHTTP属性

onreadystatechange:在同步执行方式下获得返回结果的事件句柄。只能在DOM中调用。

responseBody:结果返回为无符号整数数组。

responseStream:结果返回为IStream流。

responseText :结果返回为字符串。

responseXML:结果返回为XML格式数据。

下面是本文附件源程序中的一个应用示例:

Function GetResult(urlStr)

Dim xmlHttp

Dim retStr

Set xmlHttp = CreateObject("Msxml2.XMLHTTP") '创建对象

On Error Resume Next '出错处理

xmlHttp.Open "POST", urlStr, False '用POST方式打开连接,异步执行。

xmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" '上传表单

xmlHttp.Send '发送指令

If Err.Number = 0 Then '如果连接正确

retStr = xmlHttp.responseText '等待并获得服务端返回的结果字符串

Else

retStr = "Url not found" '否则返回出错信息

End If

Set xmlHttp = nothing '释放对象

GetResult = retStr '返回结果

End Function

GetResult()函数带入一个服务网页的URL参数,把上传的指令安放在URL后面的参数上,如:

urlStr = "server.asp?cmd=" & cmd & "&db=" & db & "table=" & table

cmd:执行方式,例如查询,修改,删除等等。

db:服务端数据库名

table:服务端表名

然后提交指令,等待并接收返回的处理结果。结果以字符串方式返回。最后由函数调用者处理并显示结果。

你可能感兴趣的:(Ajax,xml,asp)