使用XMLHttpRequest進行瀏覽器和伺服器的互動
阿新 • • 發佈:2019-02-18
注意:
1.使用javascript發出HTTP請求時,需要用到XMLHttpRequest物件
2.HTTP相應包括一個相應碼,指示是否有錯誤,request.status == 200 為正常
3.應用中無需重新載入頁面,即所謂的AJAX
4.注意XMLHttpRequest的相容性,1.0和2.0版本都要兼顧,ie8以下只支援1.0,所以使用時要注意,
使用request.onreadystatechange = function.... 來代替onload
使用request.readyState == 4 && request.status == 200 來進行判斷 (4為1.0)
5.此方法只能用於瀏覽器和伺服器在同一域(url)的情況,如果跨域,比如到別的域名的伺服器去取資料,就會產生跨域的安全問題,會被瀏覽器組織,所以要用jsonp來取代使用,具體見jsonp的文章
6.目前來看,jsonp是一種取代它的好辦法
例子:
window.onload = function() { var url = "http://localhost/gumball/sales.json"; //伺服器取資料地址 var request = new XMLHttpRequest(); //建立物件 request.open("GET", url); //芝麻開門 request.onreadystatechange = function() { if (request.readyStatus == 4 && request.status == 200) { updateSales(request.responseText); } }; request.send(null); //傳送資料為空 */ } function updateSales(responseText) { var salesDiv = document.getElementById("sales"); var sales = JSON.parse(responseText); //將串轉換為js物件 for (var i = 0; i<sales.length; i++) { var sale = sales[i]; var div = document.createElement("div"); div.setAttribute("class", "saleItem"); div.innerHTML = sale.name + " sold " + sale.sales + " gumballs"; salesDiv.appendChild(div); //隔行顯示 } } }