国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > XML > 正文

XMLHTTP對(duì)象應(yīng)用開發(fā)的初體驗(yàn)

2024-09-05 20:54:58
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
MSXML中提供了Microsoft.XMLHTTP對(duì)象,能夠完成從數(shù)據(jù)包到Request對(duì)象的轉(zhuǎn)換以及發(fā)送任務(wù)。創(chuàng)建XMLHTTP對(duì)象的語(yǔ)句如下:

Set objXML = CreateObject("Msxml2.XMLHTTP") 或

Set objXML = CreateObject(“Microsoft.XMLHTTP”)

' Or, for version 3.0 of XMLHTTP, use:

' Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")


  對(duì)象創(chuàng)建后調(diào)用Open方法對(duì)Request對(duì)象進(jìn)行初始化,語(yǔ)法格式為:

poster.open http-method, url, async, userID, password

  Open方法中包含了5個(gè)參數(shù),前三個(gè)是必要的,后兩個(gè)是可選的(在服務(wù)器需要進(jìn)行身份驗(yàn)證時(shí)提供)。參數(shù)的含義如下所示:

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

url: 接收XML數(shù)據(jù)的服務(wù)器的URL地址。通常在URL中要指明 ASP或CGI程序

async: 一個(gè)布爾標(biāo)識(shí),說(shuō)明請(qǐng)求是否為異步的。如果是異步通信方式(true),客戶機(jī)就不等待服務(wù)器的響應(yīng);如果是同步方式(false),客戶機(jī)就要等到服務(wù)器返回消息后才去執(zhí)行其他操作

userID 用戶ID,用于服務(wù)器身份驗(yàn)證

password 用戶密碼,用于服務(wù)器身份驗(yàn)證

  XMLHTTP對(duì)象的Send方法

  用Open方法對(duì)Request對(duì)象進(jìn)行初始化后,調(diào)用Send方法發(fā)送XML數(shù)據(jù):

poster.send XML-data

  Send方法的參數(shù)類型是Variant,可以是字符串、DOM樹或任意數(shù)據(jù)流。發(fā)送數(shù)據(jù)的方式分為同步和異步兩種。在異步方式下,數(shù)據(jù)包一旦發(fā)送完畢,就結(jié)束Send進(jìn)程,客戶機(jī)執(zhí)行其他的操作;而在同步方式下,客戶機(jī)要等到服務(wù)器返回確認(rèn)消息后才結(jié)束Send進(jìn)程。

XMLHTTP對(duì)象中的readyState屬性能夠反映出服務(wù)器在處理請(qǐng)求時(shí)的進(jìn)展?fàn)顩r。客戶機(jī)的程序可以根據(jù)這個(gè)狀態(tài)信息設(shè)置相應(yīng)的事件處理方法。屬性值及其含義如下表所示:

說(shuō)明
0 Response對(duì)象已經(jīng)創(chuàng)建,但XML文檔上載過(guò)程尚未結(jié)束
1 XML文檔已經(jīng)裝載完畢
2 XML文檔已經(jīng)裝載完畢,正在處理中
3 部分XML文檔已經(jīng)解析
4 文檔已經(jīng)解析完畢,客戶端可以接受返回消息

  客戶機(jī)處理響應(yīng)信息

  客戶機(jī)接收到返回消息后,進(jìn)行簡(jiǎn)單的處理,基本上就完成了C/S之間的一個(gè)交互周期。客戶機(jī)接收響應(yīng)是通過(guò)XMLHTTP對(duì)象的屬性實(shí)現(xiàn)的:

● responseTxt:將返回消息作為文本字符串;

● responseXML:將返回消息視為XML文檔,在服務(wù)器響應(yīng)消息中含有XML數(shù)據(jù)時(shí)使用;

● responseStream:將返回消息視為Stream對(duì)象

  就是下面這個(gè)很簡(jiǎn)單的JAVASCRIPT函數(shù)SEND(STR,URL)

  使用到的是XMLDOM和XMLHTTP對(duì)象.用這種技術(shù)的好處是:全JS控制,方便/簡(jiǎn)單,比RDS或者remote好多了.(前提:服務(wù)器端和客戶端都必須安裝IE5或者更高版本),在俺貼的那個(gè)無(wú)刷新在線信息功能使用的也是這種技術(shù).有興趣的朋友可以看看。

function Send(Str,URL)

//STR參數(shù)是傳入的XML數(shù)據(jù),你也可以傳入其他文本數(shù)據(jù).

//不過(guò)這個(gè)函數(shù)需要服務(wù)器端處理之后返回XML數(shù)據(jù),你也可以修改一下

//URL參數(shù)表示你所要處理數(shù)據(jù)的ASP文件地址

{

 var Http = new ActiveXObject("Microsoft.XMLHTTP") //建立XMLHTTP對(duì)象

 var Dom = new ActiveXObject("Microsoft.XMLDOM") //建立XMLDOM對(duì)象

 Http.open("POST",URL,false)

 //第一個(gè)參數(shù)的意思是,用"POST"方式發(fā)送數(shù)據(jù).可以大到4MB,也可以換為"GET".只能256KB

 //第2個(gè)參數(shù)的意思是數(shù)據(jù)發(fā)送到哪個(gè)文件處理

 //第3個(gè)參數(shù)意思是同步或異步方式.TRUE為異步,FALSE為同步

 Http.send(Str) //開始發(fā)送數(shù)據(jù).............嘟嘟..

 Dom.async=false //設(shè)置為同步方式獲取數(shù)據(jù)

 Dom.loadXML(Http.responseText)

 //開始獲取服務(wù)器端處理后返回的數(shù)據(jù).我在這里設(shè)置必須為XML數(shù)據(jù),否則出錯(cuò).

 //你也可以自己修改.使返回的是2進(jìn)制或者記錄集數(shù)據(jù).................................

 if(Dom.parseError.errorCode != 0) //檢查是否發(fā)生獲取數(shù)據(jù)時(shí)錯(cuò)誤

 {

delete(Http)

delete(Dom)

return(false)

 }

 else

 {

var Back = Dom.documentElement.childNodes.item(0).text

//得到返回的XML數(shù)據(jù),我這里假設(shè)處理程序只返回一行XML數(shù)據(jù)(一個(gè)節(jié)點(diǎn))

delete(Http)

delete(Dom)

return(Back) //函數(shù)返回?cái)?shù)據(jù).......................結(jié)束

 }

}

VAR CAT = Send("<用戶資料><姓名>謝檸檬","http://WWW.CHINAASP.COM/VIVA.ASP") //執(zhí)行函數(shù)

IF(CAT == FALSE)

{

 ALERT("對(duì)不起.處理程序返回的是FALSE.數(shù)據(jù)處理已經(jīng)失敗........")

}

ELSE

{

 IF(EVAL(CAT))

{

 ALERT("OK.數(shù)據(jù)已經(jīng)發(fā)送成功.兼以處理完成!!!!!!")

}

ELSE

{

 ALERT("對(duì)不起.處理程序返回的是FALSE.數(shù)據(jù)處理已經(jīng)失敗........")

}

}

===============================VIVA.ASP============================

ON ERROR RESUME NEXT

DIM BOBO

DIM MOMO

SET BOBO = SERVER.CREATEOBJECT("MICROSOFT.XMLDOM")

BOBO.ASYNC = FALSE

BOBO.LOAD REQUEST

IF BOBO.PARSEERROR.ERRORCODE <> 0 THEN

RESPONSE.WRITE("<程序處理結(jié)果><最終結(jié)果>FALSE")

ELSE

SET MOMO = BOBO.DOCUMENTELEMENT

IF MOMO.CHILDNODES.ITEM(0).TEXT = "謝檸檬" THEN

RESPONSE.WRITE("<程序處理結(jié)果><最終結(jié)果>TRUE")

ELSE

RESPONSE.WRITE("<程序處理結(jié)果><最終結(jié)果>FALSE")

END IF

END IF

SET BOBO = NOTHING

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 周口市| 昭平县| 抚宁县| 郧西县| 宁南县| 江山市| 沈阳市| 冷水江市| 松江区| 防城港市| 古交市| 安溪县| 禹城市| 潼关县| 巩留县| 吉木萨尔县| 固安县| 大城县| 鸡东县| 仁布县| 连州市| 濮阳县| 陆丰市| 顺义区| 武宣县| 贺兰县| 凤山县| 镇平县| 六安市| 平顶山市| 奉节县| 平武县| 丰顺县| 开平市| 屯留县| 宣威市| 长武县| 阿拉尔市| 山东省| 三穗县| 房产|