有什么方法可以使用 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
我有一个使用 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