使用纯 javascript 提交表单后重定向
Redirect after form submission with pure javascript
在我的表单中,我让用户输入 link,我的目标是重定向到 link。但是,我的问题是,每当我尝试让用户重定向时,表单都不会重定向到页面。有几个人推荐了这个:
<form>
<input type="text" name="blah blah blah" id="url">
<input type="submit" onclick="return submit_form()">
</form>
function submit_form(){
window.location.href="a url";
return false;
}
但是,当我这样做时,我的服务器没有接收到用户的输入。我该如何解决这个问题?
编辑:
我也试过这个:
function submit(){
url = getElementById("url").value;
window.location.href = "url";
}
当您使用浏览器 javascript 将 window.location.href
设置为 URL 时,您的浏览器会立即导航至该 URL,而无需您的服务器干预。这类似于在浏览器的地址栏中输入 URL。
如果您希望您的服务器进行导航,您需要更复杂的设置。在您的浏览器上,类似这样的内容。
<form action="/your/server/route">
<input type=hidden" name="redirect" value="https://example.com/where/to/redirect">
<input type="text" name="blah blah blah">
<input type="submit" >
</form>
然后在你的节点代码中处理/your/server/route
...
if (req.body.redirect) res.redirect(req.body.redirect)
这样您的服务器就会告诉浏览器重定向,作为处理表单 post 的一部分。
安全提示 cybercreeps 可能会滥用您将重定向 URL 从浏览器传递到您的服务器的情况。在使用它实际重定向之前,请始终验证 req.body.redirect
以确保它符合您的预期。
在我的表单中,我让用户输入 link,我的目标是重定向到 link。但是,我的问题是,每当我尝试让用户重定向时,表单都不会重定向到页面。有几个人推荐了这个:
<form>
<input type="text" name="blah blah blah" id="url">
<input type="submit" onclick="return submit_form()">
</form>
function submit_form(){
window.location.href="a url";
return false;
}
但是,当我这样做时,我的服务器没有接收到用户的输入。我该如何解决这个问题?
编辑: 我也试过这个:
function submit(){
url = getElementById("url").value;
window.location.href = "url";
}
当您使用浏览器 javascript 将 window.location.href
设置为 URL 时,您的浏览器会立即导航至该 URL,而无需您的服务器干预。这类似于在浏览器的地址栏中输入 URL。
如果您希望您的服务器进行导航,您需要更复杂的设置。在您的浏览器上,类似这样的内容。
<form action="/your/server/route">
<input type=hidden" name="redirect" value="https://example.com/where/to/redirect">
<input type="text" name="blah blah blah">
<input type="submit" >
</form>
然后在你的节点代码中处理/your/server/route
...
if (req.body.redirect) res.redirect(req.body.redirect)
这样您的服务器就会告诉浏览器重定向,作为处理表单 post 的一部分。
安全提示 cybercreeps 可能会滥用您将重定向 URL 从浏览器传递到您的服务器的情况。在使用它实际重定向之前,请始终验证 req.body.redirect
以确保它符合您的预期。