Ajax中使用的JSON格式非常簡潔,在JavaScript中,一個JSON對象可以看作是一個鍵值對的集合。例如,下面是一個簡單的JSON對象表示一個人的基本信息:
{ "name": "Tom", "age": 25, "gender": "male" }
通過Ajax的請求,我們可以從服務(wù)器上獲取這樣的JSON數(shù)據(jù),并動態(tài)地將其展示在網(wǎng)頁上。例如,我們可以使用以下代碼來獲取上述JSON數(shù)據(jù):
var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var person = JSON.parse(this.responseText); document.getElementById("name").innerHTML = person.name; document.getElementById("age").innerHTML = person.age; document.getElementById("gender").innerHTML = person.gender; } }; xmlhttp.open("GET", "person.json", true); xmlhttp.send();
上述代碼中,我們創(chuàng)建了一個XMLHttpRequest對象,并通過該對象發(fā)送GET請求來獲取服務(wù)器上的JSON數(shù)據(jù)。在收到響應(yīng)后,我們使用JSON.parse()函數(shù)將得到的響應(yīng)文本解析為一個JavaScript對象。然后,我們可以通過對象的屬性來獲取相應(yīng)的值,進(jìn)而動態(tài)地更新網(wǎng)頁上的元素。
除了獲取JSON數(shù)據(jù)外,我們還可以通過Ajax將用戶填寫的表單數(shù)據(jù)發(fā)送到服務(wù)器,服務(wù)器進(jìn)行處理后返回相應(yīng)的JSON數(shù)據(jù),實現(xiàn)網(wǎng)頁的無刷新動態(tài)更新。例如,以下是一個簡單的表單:
通過以下代碼,我們可以通過Ajax將表單的數(shù)據(jù)發(fā)送到服務(wù)器,并獲取服務(wù)器返回的JSON數(shù)據(jù):
document.getElementById("myForm").onsubmit = function(event) { event.preventDefault(); // 阻止表單的默認(rèn)提交行為 var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var response = JSON.parse(this.responseText); if (response.success) { alert("登錄成功!"); } else { alert("登錄失敗,請檢查用戶名和密碼。"); } } }; xmlhttp.open("POST", "login.php", true); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.send("username=" + encodeURIComponent(document.getElementsByName("username")[0].value) + "&password=" + encodeURIComponent(document.getElementsByName("password")[0].value)); };
上述代碼中,我們通過阻止表單的默認(rèn)提交行為,使用Ajax發(fā)送POST請求將表單數(shù)據(jù)發(fā)送到服務(wù)器。在服務(wù)器端處理完用戶的登錄請求后,返回一個包含登錄成功或失敗信息的JSON數(shù)據(jù)。通過解析服務(wù)器的響應(yīng),我們可以根據(jù)返回的JSON數(shù)據(jù)動態(tài)地更新網(wǎng)頁上的內(nèi)容,給用戶提供即時的反饋。
通過上述示例,我們可以看到Ajax和JSON的強(qiáng)大之處。它們使得我們可以通過異步加載和交互性強(qiáng)的方式,實現(xiàn)動態(tài)地獲取和更新網(wǎng)頁上的內(nèi)容。在實際的應(yīng)用中,Ajax和JSON常常搭配使用,讓用戶體驗更加流暢和友好。