我有一条Express路由/chat/send
,用于发送从会话和消息中获取用户ID的消息。它工作正常,但我注意到请求在一段时间后再次发送,没有任何操作(我在后台做了一些事情并再次检查了控制台)。我试图重新启动服务器并再次检查并且问题仍然存在。
这是路线:
app.post('/chat/send', ensureAuthenticated, (req, res) => {
let id = req.user.id;
let message = req.body.message;
let currentTime = new Date().getTime();
if (message.trim() !== "") {
console.log('ID: ' + id + ' Message: ' + message + ' Time: ' + currentTime);
}
});
// here is the method for ensuring that authentication is done
let ensureAuthenticated = (req, res, next) => {
if (req.isAuthenticated()) { return next(); }
res.redirect('/');
}
这是客户端代码:
$("#send-message").on("click", function() {
$.post('/chat/send', { message: $("#chat-message").val() });
$("#chat-message").val("");
});
$("#chat-message").keypress( function(e) {
if (e.which == 13) {
$.post('/chat/send', { message: $("#chat-message").val() });
$("#chat-message").val("");
return false;
}
});
正如我所说,当发生这种情况时,我不在同一个标签中,所以我很确定我没有点击按钮发送消息或按Enter键。
终端屏幕截图:
答案 0 :(得分:2)
可以重试POST;因为您根本没有回复请求,所以没有响应被传递给浏览器,并且它假定请求失败。 应然后重试请求,这似乎是在这里发生的。
要修复,只需回复Express处理程序中的任何内容,即使您只是致电res.end()
。