每次单击页面上的按钮时,我的javascript文件都会发出以下请求(使用Express在Node中)
toggleCartItem = index => {
http = new XMLHttpRequest();
http.open("POST", `/cart_item/${index}`, true);
http.send();
}
这应该可以捕获发帖请求
app.post("/cart_item/:index", (req, res) => {
console.log("order id:",req.params.index)
})
因此,当我单击按钮时,日志将显示在节点控制台中,但是在随机单击之后,日志将停止显示,并且浏览器中的控制台显示错误,或者我尝试重新加载页面并且页面卡住了重新加载,并且没有来自节点应用程序的进一步响应。如果我不重定向到另一个页面,或者我正在处理来自同一页面的节点应用程序上的请求,是否需要发送其他请求?我仍在学习http请求的工作方式,因此欢迎您提供任何反馈和提示。
答案 0 :(得分:0)
出现的问题与您如何在后端设置网址有关
改为尝试
app.post("/cart_item/:index", (req, res) => {
console.log("order id:",req.params.index)
res.json();
})
那么前端应该是
toggleCartItem = index => {
http = new XMLHttpRequest();
http.open("POST", `/cart_item/${index}`, true);
http.send();
}
这将在后端和前端托管在同一域和端口的假设下工作。如果没有,那么您将需要向与后端托管设置匹配的前端添加正确的域和端口
如果您仍然想在路径中使用:,则可以执行以下操作
toggleCartItem = index => {
http = new XMLHttpRequest();
http.open("POST", `/cart_item:${index}`, true);
http.send();
}
请注意,服务器现在需要使用双冒号来支持它
app.post("/cart_item/::index", (req, res) => {
console.log("order id:",req.params.index)
res.json();
})
答案 1 :(得分:0)
我要添加结束请求处理代码:
app.post("/cart_item/:index", (req, res) => {
console.log("order id:",req.params.index);
res.send("OK");
})