1. 程式人生 > >ajax GET方法

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()之前的。