【问题标题】:Using AJAX to display a message on page after HTTP POST request在 HTTP POST 请求后使用 AJAX 在页面上显示消息
【发布时间】: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


【解决方案1】:

请看这里:Prevent redirect after form is submitted

您需要在 AJAX 请求的末尾添加 return false; :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多