1. 程式人生 > >使用XMLHttpRequest進行瀏覽器和伺服器的互動

使用XMLHttpRequest進行瀏覽器和伺服器的互動

注意:

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);  //隔行顯示
}
}
}