有什么方法可以使用 window.location 创建 POST HTTP 请求吗?

Is there any way to create a POST HTTP request using window.location?

我有一个使用 node 和 express 构建的网络应用程序,我想在 ejs 文件中提交一个表单,但我不能使用 form.submit(),因为我想在 [=27] 中传递参数=].

表单的 ID 是 "update",提交按钮的 ID 是 "btnsubmit",我目前正在尝试按如下方式发送 post 请求:


var form = document.getElementById("update");
document.getElementById("btnsubmit").addEventListener("click", function () {
  var lp = "1";
  window.location = ("/dbinsertupdateditem?loadpage="+encodeURIComponent(lp));
});

单击按钮时出现错误:Cannot GET /dbinsertupdateditem,因为快速路由需要 POST 请求。是否可以使用 window.location 提出 POST 请求,或者我是否需要采用不同的方法来解决这个问题?

您无法更改 window.location.href 的工作方式。因此,如果路由器希望它是 post,则您需要 post 表单。如果您在页面上有一个表单,您可以设置操作

var form = document.getElementById("update");
form.action = "/dbinsertupdateditem?loadpage="+encodeURIComponent(lp);
form.submit();

如果您没有表格,请创建一个

var form = document.createElement("form");
form.method = "POST";
form.action = "/dbinsertupdateditem?loadpage="+encodeURIComponent(lp);
document.body.append(form);
form.submit();

或者可能是最佳答案,更改您的后端以允许 GET