XMLHTTP對象及其方法

來源:互聯網
上載者:User

MSXML中提供了Microsoft.XMLHTTP對象,能夠完成從資料包到Request對象的轉換以及發送任務。
建立XMLHTTP對象的語句如下:
Set objXML = CreateObject("Msxml2.XMLHTTP") 或
Set objXML = CreateObject(“Microsoft.XMLHTTP”)
' Or, for version 3.0 of XMLHTTP, use:
' Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
對象建立後調用Open方法對Request對象進行初始化,文法格式為:
poster.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資料:
poster.send XML-data
Send方法的參數類型是Variant,可以是字串、DOM樹或任意資料流。發送資料的方式分為同步和非同步兩種。在非同步方式下,資料包一旦發送完畢,就結束Send進程,客戶機執行其他的操作;而在同步方式下,客戶機要等到伺服器返回確認訊息後才結束Send進程。
XMLHTTP對象中的readyState屬效能夠反映出伺服器在處理請求時的進展狀況。客戶機的程式可以根據這個狀態資訊設定相應的事件處理方法。屬性值及其含義如下表所示:
值 說明
0 Response對象已經建立,但XML文檔上傳過程尚未結束
1 XML文檔已經裝載完畢
2 XML文檔已經裝載完畢,正在處理中
3 部分XML文檔已經解析
4 文檔已經解析完畢,用戶端可以接受返回訊息
客戶機處理響應資訊
客戶機接收到返回訊息後,進行簡單的處理,基本上就完成了C/S之間的一個互動周期。客戶機接收響應是通過XMLHTTP對象的屬性實現的:
● responseTxt:將返回訊息作為文本字串;
● responseXML:將返回訊息視為XML文檔,在伺服器響應訊息中含有XML資料時使用;
● responseStream:將返回訊息視為Stream對象。

如果要跨瀏覽器如firefox則:

<SCRIPT language=javascript>
         //jb函數會根據不同的瀏覽器初始化個xmlhttp對象
         function jb()
         {
            var A=null;
               try
               {
                   A=new ActiveXObject("Msxml2.XMLHTTP");
                }
            catch(e)
            {
                  try
                   {
                      A=new ActiveXObject("Microsoft.XMLHTTP");
                   }
             catch(oc)
            {
                     A=null
                   }
              }
           if ( !A && typeof XMLHttpRequest != "undefined" )
            {
               A=new XMLHttpRequest()
             }
           return A 
         </SCRIPT>

他會根據不同的瀏覽器返回不同的xmlhttp
具體見:
http://jibbering.com/2002/4/httprequest.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.