gpt4 book ai didi

javascript - 如何应用这个AJAX请求而不需要重新加载页面才能生效?

转载 作者:太空宇宙 更新时间:2023-11-04 01:44:07 24 4
gpt4 key购买 nike

这是一个待办事项应用程序。每当我单击“添加”时,它都需要重新加载页面才能生效,并且您可以实际看到这些项目。

我想在不需要刷新页面的地方发出AJAX请求。我怎样才能做到这一点?

我使用 Express 作为服务器,使用 EJS 作为 View 引擎。

这是应用程序的服务器内容:

let items = [];
module.exports = function(app, urlencoded) {
app.get("/todo", function(req, res) {
res.render("toDo", { data: items });
});
app.post("/todo", urlencoded, function(req, res) {
items.push(req.body);
console.log(req.body);
});
app.delete("/todo:item", function(req, res) {});
};

这是我用来发送 AJAX 请求的脚本:

let btn = document.querySelector("button");
let itemValue = document.querySelector("input").value;
btn.addEventListener("click", function() {
var xhr = new XMLHttpRequest();
xhr.open("POST", "/todo", true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(
JSON.stringify({
item: itemValue
})
);
});

这是 HTML(EJS) 文件:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>To-do Application</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" media="screen" href="../Public/Assets/Styles.css" />
<script src="../Public/Scripts/Add.js" defer></script>
</head>
<body>
<div id="todo-table">
<form onsubmit="return false;">
<input type="text" name="item" placeholder="Write an item here" required>
<button id="Add">Add</button>
</form>
<ul>
<% data.forEach(function(element){ %>
<li> <%= element.item %> </li>
<% }) %>
</ul>
</div>
</body>
</html>

最佳答案

我解决了这个问题。我刚刚做了<li>当请求成功时我自己然后在页面准备好时加载它们。我还删除了 ejs 的数据,因为我发现它们是问题所在,因为它们仅在页面刷新/加载时呈现,下次我将使用更具交互性和实时性的东西,例如 Vue/React。

关于javascript - 如何应用这个AJAX请求而不需要重新加载页面才能生效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52081951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com