我有一个使用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