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



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

表单的id是"update",提交按钮的id是"btnsubmit",我目前正在尝试发送如下的张贴请求:


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.htm的工作方式。因此,如果路由器希望它是一个帖子,那么你需要发布一个表单。如果你在页面上有表格,你可以设置动作

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

最新更新