XMLHttpRequest
的錯誤處理機制主要涉及到 onerror
事件處理器。當 XMLHttpRequest
對象在嘗試打開一個連接、發送請求或接收響應時發生錯誤,就會觸發這個事件。
以下是一個基本的錯誤處理流程:
var xhr = new XMLHttpRequest();
XMLHttpRequest
對象的 error
事件設置一個事件處理器。這個處理器會在發生錯誤時被調用。xhr.onerror = function() {
console.error('An error occurred while making the request.');
};
open
方法來打開一個到服務器的連接。這個方法接受三個參數:請求的類型(如 “GET” 或 “POST”)、請求的 URL 和一個布爾值(表示是否異步)。xhr.open('GET', 'https://api.example.com/data', true);
send
方法來發送請求。如果請求是 POST 請求,你還需要在這個方法中傳遞要發送的數據。xhr.send();
在這個例子中,如果 https://api.example.com/data
無法訪問(例如,由于網絡問題或服務器錯誤),onerror
事件處理器就會被觸發。
需要注意的是,onerror
事件只會在請求本身發生錯誤時被觸發,而不會在響應處理過程中發生錯誤時被觸發。如果你需要在響應處理過程中檢測錯誤,你可以使用 onreadystatechange
事件,并檢查 XMLHttpRequest
對象的 status
屬性。例如:
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) { // 請求已完成
if (xhr.status >= 200 && xhr.status < 300) { // 請求成功
console.log(xhr.responseText);
} else { // 請求失敗
console.error('Request failed with status ' + xhr.status);
}
}
};
在這個例子中,如果服務器返回了一個非 2xx 的狀態碼,onreadystatechange
事件處理器就會被觸發,并打印出一個錯誤消息。