readyState
目前的狀態,分為 0~4 :
0 : 已產生一個 XMLHttpRequest 物件,但是還沒有連結到其他伺服器
1 : 使用.open,但還沒有把資料傳送過去
2 : 已產生一個 XMLHttpRequest 物件,但是還沒有連結到其他伺服器
3 : Loading 中(可能資料過於龐大)
4 : 已撈取到資料,數據已經完全接收到了。
.open ( )
利用 open 傳參數的語法,來「讀取」或「傳送」資料到遠端伺服器。這裡只是設定好動作,還不會真的讀取或傳送資料。
xttp.open (‘格式’ , ‘要讀取的網址’, 同步與非同步)常用格式:
get (讀取資料)
post(傳送資料到伺服器 例如:確認此帳號是否已被註冊)
此時查看 console,會發現 readyState 變成 1。而 responseText 仍然為空的。
.send ( )
沒有打算產生任何資料過去時,可以直接給「null」(空值)。
xttp.send(null); // 給空值
// 因為前面的設定是讀取資料,不是傳送資料
此時 readyState 變成 4。而 responseText 則會成功撈取遠端網址內的資料了。
小結:
XMLHttpRequest 有點像是 取得一台電話,才可以撥打電話。
open「開啟一個設定」,也就像是輸入號碼,但還沒有按撥打按鈕。
而 send「與伺服器做對接傳送」,就是按下撥打按鈕並接通了!。