繁体   English   中英

使用纯javascript提交表单后重定向

[英]Redirect after form submission with pure javascript

在我的表单中,我有一个用户输入一个链接,我的目标是重定向到该链接。 但是,我的问题是,每当我尝试让用户重定向时,表单都不会重定向到页面。 很多人推荐了这个:

<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)

这样,您的服务器会告诉浏览器重定向,作为处理表单帖子的一部分。

安全提示网络蠕虫可能会滥用您将重定向 URL 从浏览器传递到服务器的情况。 在使用req.body.redirect进行实际重定向之前,请始终验证req.body.redirect以确保它符合您的预期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM