step1. 創建XMLHttpRequest對象,也就是創建一個異步調用對象;
step2. 創建一個新的HTTP請求,並指定改HTTP請求的方法、URL以及驗證信息;
step3. 設置響應HTTP狀態變化的函數;
step4. 發送HTTP請求;
step5. 獲取異步調用返回的數據;
step6. 使用javascript和DOM實現局部刷新;
代碼實現:
1 <script type="text/javascript"> 2 window.onload = function(){ 3 //第一步:創建xhr對象 4 //xhr是一個對象;里面可以放很多東西,數據; 5 var xhr = null; 6 if(window.XMLHttpRequest){//標准瀏覽器 7 xhr = new XMLHttpRequest();//創建一個對象 8 }else{//早期的IE瀏覽器 9 xhr = new ActiveXObject('Microsoft.XMLHTTP');//參數是規定的; 10 } 11 console.log("狀態q"+xhr.readyState);//0 12 //第二步:准備發送請求-配置發送請求的一些行為 13 //open即打開鏈接,第一個參數是以什么方式;第二個是往哪兒發送請求,第三個可以不寫,默認true,表示異步,false表示同步;; 14 xhr.open('get','03form.php',true); 15 console.log("狀態w"+xhr.readyState);//1 16 17 //第三步:執行發送的動作 18 //send也可以寫在前面,推薦寫在后面;寫null是兼容問題; 19 xhr.send(null); 20 console.log("狀態e"+xhr.readyState);//1 21 22 //第四步:指定一些回調函數,也屬於事件函數;不觸發不執行,觸發條件是xhr.readyState;z這個值有0-4,共5個狀態,是由瀏覽器控制的; 23 xhr.onreadystatechange = function(){ 24 if(xhr.readyState == 4){//4指服務器返回的數據可以使用; 25 if(xhr.status == 200){ //判斷已經成功的獲取了數據;200表示hTTP請求成功;404表示找不到頁面;503表示服務器端有語法錯誤; 26 var data = xhr.responseText;//json,文本,主角; 27 // var data1 = xhr.responseXML; 28 } 29 } 30 // console.log("狀態t"+xhr.readyState);//2表示已經發送完成; 31 32 // console.log(1234); 33 } 34 35 // console.log(456); 36 console.log("狀態r"+xhr.readyState);//1 37 38 39 } 40 </script>
