Ajax XMLHttpRequest對象的三個屬性以及open和send方法

來源:互聯網
上載者:User

(1)onreadystatechange 屬性
onreadystatechange 屬性存有處理伺服器響應的函數。下面的代碼定義一個空的函數,可同時對 onreadystatechange 屬性進行設定:

xmlHttp.onreadystatechange=function()
{
// 我們需要在這裡寫一些代碼
}
(2)readyState 屬性

readyState 屬性存有伺服器響應的狀態資訊。每當 readyState 改變時,onreadystatechange 函數就會被執行。

這是 readyState 屬性可能的值:

狀態 描述
0 請求未初始化(在調用 open() 之前)
1 請求已提出(調用 send() 之前)
2 請求已發送(這裡通常可以從響應得到內容標題部)
3 請求處理中(響應中通常有部分資料可用,但是伺服器還沒有完成響應)
4 請求已完成(可以訪問伺服器響應並使用它)

我們要向這個 onreadystatechange 函數添加一條 If 語句,來測試我們的響應是否已完成(意味著可獲得資料):

xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
    {
    // 從伺服器的response獲得資料
    }
}
(3)responseText 屬性

可以通過 responseText 屬性來取回由伺服器返回的資料。

在我們的代碼中,我們將把時間文字框的值設定為等於 responseText:

xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
    {
    document.myForm.time.value=xmlHttp.responseText;
    }
}

另外:

AJAX - 向伺服器發送一個請求
要想把請求發送到伺服器,我們就需要使用 open() 方法和 send() 方法。

open() 方法需要三個參數:

  第一個參數定義發送請求所使用的方法(GET 還是 POST)。

與 POST 相比,GET 更簡單也更快,並且在大部分情況下都能用。

然而,在以下情況中,請使用 POST 請求:

  • 無法使用快取檔案(補救伺服器上的檔案或資料庫)
  • 向伺服器發送大量資料(POST 沒有資料量限制)
  • 發送包含未知字元的使用者輸入時,POST 比 GET 更穩定也更可靠

  第二個參數規定伺服器端指令碼的 URL(該檔案可以是任何類型的檔案,比如 .txt 和 .xml,或者伺服器指令碼檔案,比如 .asp 和 .php (在傳迴響應之前,能夠在伺服器上執行任務))。

  第三個參數規定應當對請求進行非同步地處理(true(非同步)或 false(同步))。

send() 方法可將請求送往伺服器。如果我們假設 HTML 檔案和 ASP 檔案位於相同的目錄,那麼代碼是這樣的:

xmlHttp.open("GET","time.asp",true);
xmlHttp.send(null);

來自: http://hi.baidu.com/catprayer/blog/item/7e10a23c230c97e43c6d97f6.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.