📅  最后修改于: 2023-12-03 15:06:04.852000             🧑  作者: Mango
XMLHttpRequest (XHR) 是 JavaScript 中的一种 API,可用于与服务器交换数据。XHR 对象允许在不重新加载页面的情况下更新网页内容。它在现代web应用中经常被使用,因为可以异步请求数据并且不需要刷新整个页面。
我们可以使用 XMLHttpRequest 构造函数创建一个新的 XMLHttpRequest 对象。
const xhr = new XMLHttpRequest();
xhr.open('GET', 'http://localhost:8000/data', true);
xhr.send();
xhr.open('POST', 'http://localhost:8000/post', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify({ name: 'Alice', age: 20 }));
当收到响应时,我们可以通过以下方式读取响应:
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
console.log(xhr.responseText);
} else {
console.log('请求失败');
}
}
};
不同的浏览器可能会有不同的 XMLHttpRequest 实现。IE6和IE7中的XHR不同于其他现代浏览器中的XHR。因此,如果您在进行跨浏览器编程,请注意这些区别。
除了使用XHR,现代web应用还经常使用Promise和fetch提供的API来进行http请求。这两种方法优雅且易于使用,同时还具有更好的错误处理机制。
// 使用Promise
fetch(url)
.then(response => response.text())
.then(data => console.log(data))
.catch(error => console.log(error));
// 使用Async/Await
async function fetchData(url) {
try {
const response = await fetch(url);
const data = await response.text();
console.log(data);
} catch(error) {
console.log(error);
}
}