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


(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   (有修改)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM