ajax GET方法
使用ajax時 第一步用能力判斷先處理相容性:
if(window.XMLHttpRequest){
var xhr = new XMLHttpRequest();
}else{
var xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
請求資料
xhr.open("GET","file/09-1get.php?name="+decodeURI('張三')+"&age=23&t="+new Date().getTime()",true);
xhr.send();
這裡需要注意的是我們在網頁輸入資訊後,後臺接受完要返回對應的資料。此時需要在要訪問的檔名稱後面加 ?鍵=值 來返回不同的資料,如果有多對 鍵=值 時,中間用&隔開。
有時候值出現中文會有亂碼,可以將中文進行解碼decodeURI()。(encodeURI()可以編碼)
當我們第一次請求資料時,file/09-1get.php 檔案就會被下載下來,再一次訪問就會訪問本地的檔案。這樣造成的問題是伺服器上的資料改了而你訪問的還是舊的資料。所以在地址最後面新增一個鍵值對,值為當時的毫秒數,這樣確保每次請求的地址不一樣,就可以從伺服器上再下載資料。
在建立物件到資料傳送完畢有五個階段,每次階段的改變都會執行一個函式onreadystatechange,我們需要在最後一個階段(readyState === 4)並且 這個階段完成(status === 200)時執行我們的效果。
xhr.onreadystatechange = function(){
if(status === 200 && readyState === 4){
var tet = xhr.responseText; //獲得請求的資料
p.innerText = tet; //需要執行的程式碼
}
}
xhr.responseText得到的是字串,有時候我們需要的JSON物件時,可以用JSON.parse(xhr.responseText)將得到的字串轉化為JSON物件(前提是字串的格式是JSON物件格式)。xhr.onreadystatechange一般都是放在xhr.open()之前的。