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