ajax的創建及過程

step1. 創建XMLHttpRequest對象,也就是創建一個異步調用對象; 
step2. 創建一個新的HTTP請求,並指定改HTTP請求的方法、URL以及驗證信息(即請求報文行); 

step3. 設置請求報文頭(Content-Type:請求資源的MIME類型)(get方式不需要)
step4. 設置響應HTTP狀態變化的函數; 
step5. 發送HTTP請求; 
step6. 獲取異步調用返回的數據; 
step7. 使用javascript和DOM實現局部刷新;

<script type="text/javascript">
    window.onload = function(){
        //第一步:創建xhr對象
        //xhr是一個對象;裏面可以放很多東西,數據;
        var xhr = null;
        if(window.XMLHttpRequest){//標準瀏覽器
            xhr = new XMLHttpRequest();//創建一個對象
        }else{//早期的IE瀏覽器
            xhr = new ActiveXObject('Microsoft.XMLHTTP');//參數是規定的;
        }
        console.log("狀態q"+xhr.readyState);//0
        //第二步:準備發送請求-配置發送請求的一些行爲
        //open即打開鏈接,第一個參數是以什麼方式;第二個是往哪兒發送請求,第三個可以不寫,默認true,表示異步,false表示同步;;
        xhr.open('get','03form.php',true);
        console.log("狀態w"+xhr.readyState);//1

        //第三步:執行發送的動作
        //send也可以寫在前面,推薦寫在後面,即第四步設置相應請求狀態變化函數的後面,第五步;寫null是兼容問題;
        xhr.send(null);
        console.log("狀態e"+xhr.readyState);//1

        //如果是post請求,需要在狀態變化函數與發送請求之前先設定請求報文頭
        xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

        //第四步:指定一些回調函數,也屬於事件函數;不觸發不執行,觸發條件是xhr.readyState;z這個值有0-4,共5個狀態,是由瀏覽器控制的;
        xhr.onreadystatechange = function(){
            if(xhr.readyState == 4){//4指服務器返回的數據可以使用;
                if(xhr.status == 200){ //判斷已經成功的獲取了數據;200表示hTTP請求成功;404表示找不到頁面;503表示服務器端有語法錯誤;
                    var data = xhr.responseText;//json,文本,主角;
                    // var data1 = xhr.responseXML;
                }
            }
            // console.log("狀態t"+xhr.readyState);//2表示已經發送完成;

            // console.log(1234);
        }

        // console.log(456);
        console.log("狀態r"+xhr.readyState);//1


    }
    </script>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章