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