如何使用 Node/Express 和 AJAX 发送表单删除请求?

Art*_*005 3 ajax node.js express

我正在尝试使用 NodeJs 和 Express 构建 REST API(我是编程的初学者),CRUD 请求在 Postman 中工作正常,但现在我不知道如何使用 AJAX 通过表单发送 DELETE 请求。我只想在文本输入中插入一个 id 并将其提交到服务器以删除 MongoDB 中的文档。我到处搜索但不明白如何执行此操作。

应用程序.js

app.delete('/delete/:id', (req, res) => {
  let id = req.params.id;
  if (!ObjectID.isValid(id)) {
    return res.status(400).send();
  }
  Blog.findByIdAndRemove(id).then((docs) => {
    res.status(200).send({docs})
  }).catch((e) => {
    res.status(400)
  });
});
Run Code Online (Sandbox Code Playgroud)

超文本标记语言

                                                   <!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Titolo</title>
  </head>
  <body>
    <form action='/delete/:id' method="POST">
      <input id="id" type="text" name="id" /><br />
      <button id:"cancella" type="submit">Submit</button>
    </form>

    <script src="/js/jquery.js"></script>
    <script src="/js/script.js"></script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

脚本.js

$(document).ready(function() {
 $('#cancella').on("click", function() {
  var id = $('#id').val();
  $.ajax({
   url: '/delete/:id',
   type: 'DELETE',
   data: {"id": id},
   dataType: 'json',
   success: function(data) {
    //do something
  }});
 });
});
Run Code Online (Sandbox Code Playgroud)

Sme*_*ing 6

HTML 表单不支持 PUT 或 DELETE 方法,但 Node 应用程序有类似这样的解决方法https://github.com/expressjs/method-override