Home

2008年10月4日 星期六

[AJax] XMLHttpRequest 物件的一些基本方法

From: Polin Wei

  標準 XMLHttpRequest 的操作方法如下 :
  • abort()
    停止當前請求
  • getAllResponseHeaders()
    把 HTTP 請求的所有回應標頭作為鍵/值對傳回
  • getResponseHeader("header")
    傳回指定標頭的字串值
  • open("method", "url")
    建立對伺服器的呼叫。method 參數可以是 GET、POST 或 PUT。url 參數可以是相對 URL 或絕對 URL。這個方法還包括 3 個可選的參數
  • send(content)
    向伺服器發送請求
  • setRequestHeader("header", "value")把指定標頭設定為所提供的值。在設定任何標頭之前必須先呼叫 open
接下來,再來針對各別的方法 ( Method ) 作比較仔細的說明:


  • void abort()
    顧名思義,這個方法就是要停止請求。
  • string getAllResponseHeaders()
    這個方法的核心功能對 Web 應用程式開發人員應該很熟悉了,它傳回一個字串,其中包含 HTTP 請求的所有回應標頭,標頭包括 ContentLength、Date 和 URI。
  • string getResponseHeader(string header)
    這個方法與 getAllRes-ponseHeaders() 是對應的,不過它有一個參數表示你希望得到的指定標頭值,並把這個值作為字串傳回。
  • void open(string method, string url, boolean asynch, string username,string password)
    這個方法會建立對伺服器的呼叫。這是初始化一個請求的純腳本方法。它有兩個必要的參數,還有 3 個可選參數。
  1. 要提供呼叫的特定方法(GET、POST 或 PUT)
  2. 還要提供所呼叫資源的 URL。
  3. 另外還可以傳遞一個 Boolean 值,指示這個呼叫是非同步的還是同步的。預設值為 true,表示請求本質上是非同步的。如果這個參數為 false,處理就會等待,直到從伺服器傳回回應為止。由於非同步呼叫是使用 Ajax 的主要優勢之一,所以倘若將這個參數設定為 false,從某種程度上講與使用XMLHttpRequest 物件的初衷不太相符。不過,前面已經說過,在某些情況下這個參數設定為 false 也是有用的,比如在持久儲存頁面之前可以先驗證使用者的輸入。
  4. 最後兩個參數不說自明,允許你指定一個特定的使用者名稱和密碼。
  • void send(content)
    這個方法實際向伺服器發出請求。如果請求聲明為非同步的,這個方法就會立即傳回,否則它會等待直到接收到回應為止。可選參數可以是 DOM 物件的實例、輸入串流,或者字串。傳入這個方法的內容會作為請求本體的一部分發送。
  • void setRequestHeader(string header, string value)
    這個方法為 HTTP請求中一個給定的標頭設定值。它有兩個參數,第一個字串表示要設定的標頭,第二個字串表示要在標頭中放置的值。需要說明,這個方法必須在呼叫 open() 之後才能呼叫。


  在所有這些方法中,最有可能用到的就是 open() 和 send()。XMLHttp-Request 物件還有許多屬性,在設計 Ajax 互動時這些屬性非常有用。

參考:

Ajax - XMLHttpRequest 重要的屬性

沒有留言:

張貼留言