AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页应用能够快速地更新内容。
假设我们有一个简单的Node.js服务器,使用Express框架来处理AJAX请求,并连接到一个假设的数据库(这里用一个模拟的数据数组代替)。
const express = require('express');
const app = express();
const port = 3000;
// 模拟数据库
const users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
// ...
];
app.use(express.static('public'));
app.get('/users', (req, res) => {
res.json(users);
});
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}/`);
});
在客户端,我们可以使用原生AJAX来请求这些用户数据。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>AJAX Example</title>
</head>
<body>
<ul id="user-list"></ul>
<script>
const xhr = new XMLHttpRequest();
xhr.open('GET', '/users', true);
xhr.onload = function() {
if (this.status === 200) {
const users = JSON.parse(this.responseText);
const userList = document.getElementById('user-list');
users.forEach(user => {
const li = document.createElement('li');
li.textContent = user.name;
userList.appendChild(li);
});
}
};
xhr.send();
</script>
</body>
</html>
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
next();
});
XMLHttpRequest
对象的timeout
属性来解决。xhr.timeout = 5000; // 设置超时时间为5秒
xhr.ontimeout = function() {
console.error('Request timed out');
};
xhr.onerror = function() {
console.error('Request failed');
};
领取专属 10元无门槛券
手把手带您无忧上云