【问题标题】:how to send POST request and get back response without the page loads with NodeJS如何在不使用 NodeJS 加载页面的情况下发送 POST 请求并获取响应
【发布时间】:2021-01-08 12:27:04
【问题描述】:

我想向我的 NodeJS 服务器发送一个发布请求以更新我的数据库中的文档并获取响应,但我不想加载页面,我只想提醒它该过程已成功完成 ...... 这是我的代码 HTML:

 <form action="/products/update" method="POST" id="myFrom">
                        <button type="submit" class="btn btn-success">save</button>

    <input type="number" name="productCount">

    <input type="text" name="productName">
</form>

JS:

$("#myFrom").submit(function (e) {
    $.ajax({
            success: function (data) {
                console.log(data);
            }
    });
});

NodeJS:

router.post("/products/update", (req, res) => {
    console.log(req.body);
    res.status(200).send("success");
});

问题是当我按下保存时它会重定向到/products/update 并在其中输入成功,但我希望成功在编辑页面中成为警报

【问题讨论】:

  • 该按钮是一个“提交”按钮,所以它提交表单。改为type=button
  • 那么如何提交表单呢?
  • 您自己的函数已经包含一个 ajax 请求。只需将其设为按钮上的“点击”处理程序即可。你真的根本不需要&lt;form&gt;
  • 你能告诉我怎么做吗?

标签: javascript html node.js ajax


【解决方案1】:

用户 e.preventDefault() 提交表单而不刷新页面

 $("#myFrom").submit(function (e) {
 e.preventDefault()
 $.ajax({
        success: function (data) {
            console.log(data);
        }
  });
 });

【讨论】:

  • @fkushgvosvu 您的$.ajax() 调用缺少一些内容,例如 URL 和 POST 参数。
  • 他们在表单动作和方法上
  • @Pointy 所说的你需要在进行 ajax 调用时包含 URL 和方法,它与 html 表单提交略有不同,而在发出 ajax 请求时你正在发出新的请求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-11
  • 2011-07-06
  • 1970-01-01
  • 1970-01-01
  • 2019-02-23
相关资源
最近更新 更多