阅读量:0
XMLHttpRequest
的错误处理机制主要涉及到 onerror
事件处理器。当 XMLHttpRequest
对象在尝试打开一个连接、发送请求或接收响应时发生错误,就会触发这个事件。
以下是一个基本的错误处理流程:
- 创建 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
事件处理器就会被触发,并打印出一个错误消息。