XMLHTTP使用具體解釋

來源:互聯網
上載者:User

標籤:style   http   color   os   io   使用   java   ar   strong   

XMLHTTP對象是Microsoft的MSXML開發包中帶的一個用HTTP,XML協議訪問web資源的對象. 從MSXML3.0開始出現. 它在AJAX技術中主要用來從其它網路資源擷取資訊,然後由javascript來更新頁面中的部分內容.採用這樣的方法將頁面可更新內容細化,不須要更新非常少的內容而重新整理整個頁面.  XMLHTTP對象的用法例如以下:1- 建立XMLHTTP對象,不同的瀏覽器建立方式不同,本文以IE為例說明. 2- 用XMLHTTP對象向外部資源發送請求資訊, 同步或非同步獲得返回結果3- 處理返回結果,在頁面上顯示,這時要用到javascript相關技術 XMLHTTP對象的方法例如以下: (函數原型採用VB文法) Sub abort()
中斷當前對象的HTTP請求.
 

 Function getAllResponseHeaders() As String

擷取HTTP響應結果中的所有Header資訊,以字串格式表示

 

 Function getResponseHeader(bstrHeader As String) As String

 
擷取HTTP響應結果Header中指定名稱的值,用字串表示,假設不存在則返回空串 
Sub open(bstrMethod As String, bstrUrl As String, [varAsync], [bstrUser], [bstrPassword])
初始化HTTP串連請求對象,佈建要求方法,地址,認證資訊.bstrMethod可用值有GET,POST,HEAD,定義向HTTP提交請求的方式;必填bstrUrl為要訪問的HTTP資源地址;必填varAsync 可選項,設定是非同步還是同步等待返回結果,true-非同步方式,false-同步方式,預設是非同步方式;假設HTTP請求要求username和口令,則在bstrUser,bstrPassword中設定.  
Sub send ([varBody])
向server發送一個HTTP請求,並擷取返回結果.varBody為要發送到server的資料,通常在POST方式下使用. 
Sub setRequestHeader(bstrHeader As String, bstrValue As String)
在請求header中設定bstrHeader/bstrValue值對並發送到server端.例:

xmlReq.setRequestHeader("Content-Type",

"application/x-www-form-urlencoded; charset=UTF-8");

 
 

 XMLHTTP屬性

 

onreadystatechange

 
 佈建要求對象狀態readystate改變時要調用的函數對象; 

readyState

 

請求對象的狀態值,含義例如以下:

0 - 請求對象被建立,但未初始化,即open方法未調用

1 - 裝載中,open方法已調用,send方法未調用

2 - 已裝載,send方法已調用,但還未獲得Header資訊

3 - 互動中,已擷取了部分資訊,這時調用responseText將得到不完整資訊,會返回錯誤

4 - 所有資料已接收完畢,可用responseText或responseBody得到完整資料

 

 responseBody

 

表示從HTTP響應得到的返回原始資訊,內容的編碼方式決定於請求的server端(UTF-8, UCS-2, UCS-4, Shift_JIS等)

 

responseText

 

 HTTP請求返回資料體的字串表示,預設情況下用utf-8編碼後返回,假設返回內容中有中文,server端的資料必須用utf-8編碼,否則就會出現亂碼。

 

responseStream

 

HTTP請求返回資料的流對象,該對象實現IStream介面.

 

responseXML

 

返回XML格式的資料對象. server端返回資料為XML格式資料時可用.server端用動態語言產生xml時,必須設定content-type為text/xml,否則client得到的responseXML為空白

 

status

 HTTP傳回碼. 200 - 成功404 - 錯誤請求500 - server內部錯誤,等等. 詳見HTTP協議. 
statusText
HTTP返回狀態文本描寫敘述. 
上面說明了XMLHTTP的方法和屬性,以下列一些使用執行個體.   例1  串連到google,顯示獲得的資訊  <script language="javascript">  function getGoogle(){    var xmlReq ;    try{        xmlReq = new ActiveXObject("Microsoft.XMLHTTP");         var web = "http://www.google.com";         //非同步方式        xmlReq.open("GET",web,true);        xmlReq.onreadystatechange = function(){              if (xmlReq.readystate == 4){                      document.write(xmlReq.responseText);              }         }         xmlReq.send();     catch(e){                 alert(e);    }    } </script>   例2 用POST方法發送資料到webserver <script language="javascript" >    var xmlReq ;    function sendData(){                   try{                     xmlReq = new ActiveXObject("MSXML2.XMLHTTP");                    var data = "name=james&id=1234";                    var web = "http://www.myweb.com/login.jsp"    //實際執行要換為存在的一個地址                    xmlReq.open("POST",web,true);                    xmlReq.onreadystatechange = resHandler;         //設定傳回值處理函數                    xmlReq.setRequestHeader("Content-Type","

           xmlReq.setRequestHeader("Content-Type",

"application/x-www-form-urlencoded; charset=UTF-8");

                    xmlReq.send(data);           } catch(e) {               alert(e);          }     }      function ResHandler(){           if (xmlReq.readystate == 4){                                   alert(xmlReq.responseText);            }    }  </script>  在Mozilla瀏覽器中要用xmlReq = new XMLHttpRequest()來建立HTTP請求對象. 其它用法與MSXML同樣。基於安全問題,假設open中訪問的是另外的域,瀏覽器一般會禁止這樣的操作,要跨域訪問需改動安全配置。  參考文檔: 1 - http://msdn.microsoft.com  中MSXML SDK2 - http://jibbering.com/2002/4/httprequest.html     

XMLHTTP使用具體解釋

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.