使用 AJAX 載入資料時,利用 open 傳參數的語法,來「讀取」或「傳送」資料到遠端伺服器。
var xttp = new XMLhttpRequest();
// 必須先產生 XMLhttpRequest 物件,用來向其他伺服器撈取資料xttp.open (‘get’ , ‘http://www.xxx.com’, true)
// 格式 要讀取的網址 true: 非同步。 false: 同步
true 非同步(預設):不會等到資料傳回來,就讓程式先繼續往下跑。
false 同步:等資料傳回來,才會讓程式先繼續往下跑。
若要載入的資料相當龐大時,建議使用「true 非同步」,若使用「false 同步」可能導致畫面卡很久。
由於非同步的關係,以下案例:
因為資料還沒有回傳過來,就先跑下來的程式碼,所以 console.log 撈不到資料(紅色框框處為空白)。
解決方法:
使用 onload 當資料載入完成後,再執行 function 內程式。
利用抓取到的資料,手動變更 HTML 內容
(範例:變更 google 的 搜尋欄位文字內容)
- 先將 JSON 資料從字串轉成陣列格式。
JSON.parse(xhttp.responseText);
- 選取 dom 節點,並更改文字內容 textContent。
- 文字內容變更為陣列裡的資料 str[0].name。
HTTP 狀態碼
200:有撈到資料,資料有正確回傳。
404:沒有撈到資料,資料讀取錯誤。
可加入判斷式,在不同狀態下顯示不同程式碼。
if (xhttp.status == 200){
alert('資料有撈到!')
}else if(xhttp.status == 404){
alert('資料沒有錯誤!')
}