js ajax 請求

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script>
        window.onload = function() {
            var Obtn = document.querySelector('input');
            Obtn.onclick = function() {
                // 創建一個XMLHttpRequest 對象,這是ajax請求的核心;這裏採用一個三元選擇,是爲了兼容ie6/ie5
                // 在ie6/ie5中,使用new ActiveXObject('Microsoft.XMLHTTP')創建XMLHttpRequest對象
                var xhr = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject('Microsoft.XMLHTTP');
                // xhr.withCredentials = true;

                // 獲取ajax請求地址,在地址後面加入一個隨機數,是爲了解決ie瀏覽器的識別問題,ie瀏覽器相同的請求地址,不會再次進行請求,
                // 加入一個隨機數之後,再次請求時,ie會解析爲不同的地址
                var url = 'http://xxxxxx?params=111';
                // 對請求的狀態進行監控
                // 0 -- 未初始化,確認XMLHttpRequest 對象已經創建,併爲調用open()方法初始化做準備
                // 1-- 載入,對XMLHttpRequest 對象進行初始化,即調用open()方法,根據參數(method,url,true)完成對象狀態的設置,並調用send()方法向服務器端發送請求。1表示正在向服務端發送請求
                // 2--載入完成,收到服務器的相應數據,但是隻是原始數據,並不能直接在客戶端使用。值爲2表示已經接收完全部相應數據,併爲下一階段解析做好準備
                // 3--交互數據,解析相應數據,即根據服務器端相應頭部返回的MIME類型把數據轉換成能通過 responseBody,responseText,responseXML屬性存取的格式,爲在客戶端調用做好準備。
                // 值爲3表示正在解析數據
                // 4--完成, 此階段確認全部數據都已經解析爲可以在客戶端使用的數據, 解析已經完成。 值爲4表示解析完成, 可以通過XMLHttpRequest對象對應的屬性獲取數據
                xhr.onreadystatechange = function() {
                    if (xhr.readyState == 4) {
                        // 將XMLHttpRequest返回的數據轉換成爲json格式(因爲返回來的是一個字符串)
                        var obj = JSON.parse(xhr.responseText);
                        var str = '';
                        // 遍歷obj
                        for (var key in obj) {
                            str += "<p>" + key + "," + obj[key] + "</p>";
                        }
                        // 輸出obj
                        document.querySelector('.box').innerHTML = str;
                    }
                }
                xhr.open('GET', url, true);
                xhr.send(null);
            }
        }
    </script>
</head>
<body>
<input type='button' value="ajax請求調用數據">
<div class='box'></div>
</body>
</html>

 

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