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

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

XMLHTTP ActiveX對(duì)象的訪問(wèn)ASP區(qū)段變量的其他方法

2019-11-18 20:14:23
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
幾個(gè)月以前,一個(gè)同事到我這里來(lái),說(shuō)他有一個(gè)客戶端javaScript的問(wèn)題。我不得不向他解釋說(shuō),活動(dòng)服務(wù)器頁(yè)面(asp)的區(qū)段變量不能從客戶端訪問(wèn),除非它們通過(guò)cookie或者隱藏的輸入框被傳遞。但是我沒(méi)有停止繼續(xù)尋找從客戶端訪問(wèn)ASP區(qū)段變量更好方法的工作。  

最近在研究如何不需要上傳和下載頁(yè)面就能夠從服務(wù)器獲取信息時(shí),我讀到了關(guān)于xmlHTTP ActiveX對(duì)象的內(nèi)容。從本質(zhì)上講,這個(gè)對(duì)象為Internet Explorer和Web服務(wù)器通訊并接收回應(yīng)提供了一種方法。它是MSXML動(dòng)態(tài)加載庫(kù)的一部分,其當(dāng)前的版本是第4版,并能從微軟免費(fèi)下載。同樣值得重要的是,注意對(duì)于微軟Internet Explorer 5.x,MSXML缺省的版本還是第2版。

xmlhttp基礎(chǔ)
你可以使用XMLHTTP對(duì)象在服務(wù)器上執(zhí)行一個(gè)ASP,等待服務(wù)器的回應(yīng),然后根據(jù)回應(yīng)來(lái)動(dòng)作。這意味著有了一個(gè)Javascript函數(shù)和一個(gè)專用的動(dòng)態(tài)服務(wù)器頁(yè)面,就有可能解決從客戶端訪問(wèn)變量的問(wèn)題。客戶端需要區(qū)段變量的值嗎?沒(méi)問(wèn)題!你要做的全部工作就是調(diào)用一個(gè)小小的函數(shù)。

實(shí)現(xiàn)XMLHTTP對(duì)象
只要開始試著實(shí)現(xiàn)以前沒(méi)有嘗試過(guò)的概念或特性,我通常會(huì)發(fā)現(xiàn)把問(wèn)題分解成邏輯件會(huì)更容易一些。在這種情況下,我從服務(wù)器端的和客戶端的開始。心里有這個(gè)概念,我命名為test.asp的服務(wù)器端活動(dòng)服務(wù)器頁(yè)面看起來(lái)就是這個(gè)樣的了:

<%@ Language=VBScript%>
<%
Response.Write
session(Request.QueryString("variable"))
%>
這個(gè)服務(wù)器端代碼段的目的是返回任何和查詢字符串里同鍵相關(guān)聯(lián)的ASP區(qū)段變量的值。

由于請(qǐng)求是從客戶端發(fā)起的,而且有一個(gè)對(duì)象正在被使用,所以客戶端這一部分會(huì)更詳細(xì)。創(chuàng)建XMLHTTP對(duì)象、設(shè)置對(duì)象的屬性、調(diào)用對(duì)象的發(fā)送方法,以及根據(jù)對(duì)象返回的信息進(jìn)行動(dòng)作,這些都是有必要的。Listing A是執(zhí)行這些任務(wù)的JavaScript。
要進(jìn)一步檢查XMLHTTP的可能性,就有必要往回走一步,這是因?yàn)槔肬RL把查詢信息從客戶端送到服務(wù)器端是有局限性的。URL最大長(zhǎng)度限定為2,048字節(jié)。這2KB的最大長(zhǎng)度還包括了URL的非查詢字符串這部分。要更進(jìn)一步就要找到一種更好的方法,把信息從客戶端送到服務(wù)器端。

我只花了大約20分鐘就決定好了如何把信息從客戶端傳遞到服務(wù)器端。我決定使用HTTP。在你確定我腦子發(fā)懵但已經(jīng)回過(guò)神以前,讓我來(lái)解釋一下。我要在HTTP報(bào)頭里傳遞信息。通過(guò)包頭來(lái)傳遞信息就能夠避免使用URL傳遞信息所無(wú)法避免的2,048字節(jié)的限制。

心里有了這些,現(xiàn)在就需要修改通過(guò)URL傳遞信息的例子了。在客戶端不是要把參數(shù)添加到test.asp的URL里,而是XMLHTTP對(duì)象的setHeader方法會(huì)傳遞這個(gè)參數(shù)。進(jìn)行這樣的修改就產(chǎn)生了Listing B里的客戶端程序。

在服務(wù)器端,有必要從HTTP報(bào)頭里而不是請(qǐng)求對(duì)象的查詢字符串里取回區(qū)段變量名。其結(jié)果是:

<%@ Language=VBScript %>
    <%
     Response.Write Session(Request.ServerVariables("HTTP_test"))
    %>
更進(jìn)一步
我在這里所描述的對(duì)象叫做XMLHTTP。注意這個(gè)對(duì)象的頭3個(gè)字母是XML。你已經(jīng)見(jiàn)過(guò)了如何在客戶端和服務(wù)器端傳遞信息,但是XMLHTTP對(duì)象的初衷是允許信息作為XML在客戶端和服務(wù)器端傳遞信息。在以后的文章里,我會(huì)解釋如何使用XML的簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)來(lái)交換更加復(fù)雜的信息。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 西乌| 固始县| 乃东县| 巨野县| 巫溪县| 黑龙江省| 安岳县| 历史| 仁怀市| 荥阳市| 常州市| 仙居县| 辉县市| 闸北区| 浮山县| 农安县| 乌苏市| 万源市| 安义县| 克什克腾旗| 辉县市| 扶余县| 山东省| 娱乐| 旌德县| 都安| 周至县| 达州市| 电白县| 平湖市| 敦煌市| 嵩明县| 永登县| 四子王旗| 泸水县| 本溪市| 遂昌县| 盖州市| 吴桥县| 东辽县| 海晏县|