AJAX:XHR(XMLHttpRequest)与Fetch的区别与使用
XHR (XMLHttpRequest) 是 AJAX 的早期实现,而 Fetch API 是现代和更简洁的替代方法。
XHR 使用的基本步骤:
- 创建一个新的 XHR 对象。
- 打开一个到服务器的新请求。
- 设置请求状态变化的回调函数。
- 发送请求。
- 服务器响应时处理。
var xhr = new XMLHttpRequest();
xhr.open("GET", "url", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
// 请求成功
var response = xhr.responseText;
}
};
xhr.send();
Fetch API 的使用更简洁:
- 使用
fetch()
方法发送请求。 - 使用
then()
方法处理响应。 - 使用
catch()
方法处理错误。
fetch("url")
.then(response => response.text())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Fetch 的优点:
- 基于 Promise,语法更简洁。
- 内置对响应处理的支持,如 JSON 自动解析。
- 更好的错误处理机制。
- 更好的集成了浏览器的缓存机制。
- 可以使用
Request
,Response
和Headers
对象。
XHR 的优点:
- 更广泛的浏览器支持(IE 10+)。
- 可以设置上传和下载进度事件。
- 可以使用
FormData
发送表单数据。 - 可以使用
overrideMimeType()
修改 MIME 类型。
评论已关闭