提交表单后Node JS重定向

Posted

技术标签:

【中文标题】提交表单后Node JS重定向【英文标题】:Node JS redirection after submiting a form 【发布时间】:2014-11-11 18:26:37 【问题描述】:

我的节点应用程序有一个 html 表单,如果它被提交,它会显示 /code 和文本,但仅此而已,我无法重定向到我的主页。使用 Timer 提交到另一个页面后如何重定向?我尝试在 app.post 和客户端执行此操作,但它不起作用

<form action="/code" method="post" >
<fieldset>
<input type="text"  name="code"  id="code"
style="text-align: center" 
placeholder="Enter Code" /> <br> <br> <input
type="submit" class="btn btn-success" name="submit" id="submit" 
value=" authentifizieren " />
</fieldset>
</form>

App.js

app.post('/code', function(req, res) 


    var code = req.param("code");

    res.writeHead(200, 'Content-Type': 'text/html');
    res.write('Code: '+code+');
    res.end();
);

我只想从 app.post /code 重定向回我的主页或任何其他网站。

【问题讨论】:

你能在客户端处理重定向(通过 ajax 成功方法)并从服务器上的 post 调用返回 res.send(200) 吗?看来这就是要走的路。 你能从服务器重定向吗?为什么不呢? 【参考方案1】:

Redirects 在 Node JS 中:

res.writeHead(302, 
  'Location': 'http://example.com/'
);
res.end();

如果你想在客户端做,在 Node JS 中:

res.writeHead(200, 'Content-Type': 'text/html');
res.write('Code: '+code);
res.write('<script>setTimeout(function ()  window.location.href = "http://example.com/"; , 5000);</script>');
res.end();

【讨论】:

【参考方案2】:
res.writeHead(200, 'Content-Type': 'text/html');
res.write('Code: '+code);
res.write('<script>setTimeout(function ()  window.location.href = "http://example.com/"; , 5000);</script>');
res.end();

【讨论】:

【参考方案3】:

纯node js中可以做两种重定向

1)在同一站点内

   res.writeHead(301, "Location": "/blog/thank-you");
   return res.end();   

2)到外部网站

   res.redirect("https://***.com/");

【讨论】:

以上是关于提交表单后Node JS重定向的主要内容,如果未能解决你的问题,请参考以下文章

如果表单提交成功并保留在页面上,如何使用js进行重定向

提交表单后JQuery重定向

使用引导验证库防止表单提交后重定向

提交表单后重定向到另一个页面?

Ajax表单提交后如何将用户重定向到另一个页面

Ajax 表单提交后如何将用户重定向到另一个页面?