在向服務(wù)器發(fā)送數(shù)據(jù)之前,我們有必要解釋一下 XMLHttpRequest 對象的三個重要的屬性。
onreadystatechange 屬性存有處理服務(wù)器響應(yīng)的函數(shù)。下面的代碼定義一個空的函數(shù),可同時對 onreadystatechange 屬性進行設(shè)置:
xmlHttp.onreadystatechange=function()
{
// 我們需要在這里寫一些代碼
}
readyState 屬性存有服務(wù)器響應(yīng)的狀態(tài)信息。每當 readyState 改變時,onreadystatechange 函數(shù)就會被執(zhí)行。
這是 readyState 屬性可能的值:
狀態(tài) | 描述 |
---|---|
0 | 請求未初始化(在調(diào)用 open() 之前) |
1 | 請求已提出(調(diào)用 send() 之前) |
2 | 請求已發(fā)送(這里通常可以從響應(yīng)得到內(nèi)容頭部) |
3 | 請求處理中(響應(yīng)中通常有部分數(shù)據(jù)可用,但是服務(wù)器還沒有完成響應(yīng)) |
4 | 請求已完成(可以訪問服務(wù)器響應(yīng)并使用它) |
我們要向這個 onreadystatechange 函數(shù)添加一條 If 語句,來測試我們的響應(yīng)是否已完成(意味著可獲得數(shù)據(jù)):
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4
)
{
// 從服務(wù)器的response獲得數(shù)據(jù)
}
}
可以通過 responseText 屬性來取回由服務(wù)器返回的數(shù)據(jù)。
在我們的代碼中,我們將把時間文本框的值設(shè)置為等于 responseText:
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.myForm.time.value=xmlHttp.responseText
;
}
}
下一節(jié),我們會介紹如何向服務(wù)器請求數(shù)據(jù)!