【发布时间】:2021-12-01 05:42:29
【问题描述】:
在提交表单时,我想留在同一页面上并显示一条消息(成功或失败)。 HTTP POST请求处理如下:
app.post('/insertdb', function(request, response) {
// insert values from form into database
response.json({success: true});
});
在客户端 .ejs 文件中,然后我尝试使用 ajax 来显示警报(我尝试按照 how to use NodeJS pop up a alert window in browser 中的示例进行操作),如下所示:
<script>
$.ajax({
url: "/dbinsert",
type: "post",
data: 'testing',
cache: false,
success: function(response) {
if(data['success']) {
alert("success");
}
},
error: function () {
alert("There has been an error");
}
});
</script>
问题是,当我按下提交按钮时,它会将我带出页面并显示:```{"success":true}`` 而不是在提交表单后停留在同一页面并显示弹出窗口请求的状态。
【问题讨论】:
-
您需要使用
event.preventDefault()禁用正常的表单提交。 -
我认为这里的问题是 AJAX 请求将在页面加载时触发,因为它不受任何事件侦听器或任何函数的限制。但是,如果没有看到相关表单的配置,就几乎不可能针对您的场景给出任何具体的答案。
标签: javascript ajax express