《AJAX深入淺出》是一本關于AJAX編程的經典教材。在這本書中,異步請求的實現主要依賴于JavaScript中的XMLHttpRequest對象。以下是一個簡單的示例,展示了如何使用XMLHttpRequest對象實現異步請求:
ajax_example.html
,并在其中添加以下內容:<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AJAX 異步請求示例</title>
<script src="ajax_example.js"></script>
</head>
<body>
<button onclick="sendRequest()">發送請求</button>
<div id="result"></div>
</body>
</html>
在這個示例中,我們創建了一個按鈕,當點擊該按鈕時,會觸發sendRequest
函數。同時,我們還有一個<div>
元素,用于顯示請求的結果。
ajax_example.js
,并在其中添加以下內容:function sendRequest() {
// 創建一個新的XMLHttpRequest對象
var xhr = new XMLHttpRequest();
// 設置請求的類型和URL
xhr.open('GET', 'https://jsonplaceholder.typicode.com/todos/1', true);
// 設置請求完成時的回調函數
xhr.onload = function() {
if (xhr.status >= 200 && xhr.status < 400) {
// 請求成功,將返回的數據解析為JSON格式,并在頁面上顯示
var data = JSON.parse(xhr.responseText);
document.getElementById('result').innerHTML = data.title;
} else {
// 請求失敗,顯示錯誤信息
document.getElementById('result').innerHTML = '請求失敗,狀態碼:' + xhr.status;
}
};
// 設置請求錯誤時的回調函數
xhr.onerror = function() {
document.getElementById('result').innerHTML = '請求出錯';
};
// 發送請求
xhr.send();
}
在這個示例中,我們首先創建了一個新的XMLHttpRequest對象,然后設置了請求的類型(GET)、URL(https://jsonplaceholder.typicode.com/todos/1)以及是否異步(true)。接下來,我們設置了請求完成時的回調函數,用于處理返回的數據。如果請求成功,我們將返回的數據解析為JSON格式,并在頁面上顯示;如果請求失敗,我們顯示錯誤信息。最后,我們調用xhr.send()
方法發送請求。
當用戶點擊“發送請求”按鈕時,瀏覽器會發起一個異步請求,并在請求完成后執行相應的回調函數。這樣,我們就可以在不刷新整個頁面的情況下,實現與服務器的數據交互。