如何在express中redirect到post请求

我创build了一个登陆页面,当它被点击时,会自动触发Facebook身份validationstream程。 但是,我无法自动从索引redirect到signup路线。 如何将GET请求redirect到POST请求?

  router.get('/', function(req, res) { //redirect to login function }); router.post('/signup', passport.authenticate('signup', { //Log user in on facebook })); 

从GET请求redirect到POST请求是不可能的。

所有你能做的就是将一个POST请求redirect到一个POST请求,但即使这样做有时也会很棘手,但是你永远不能redirect到与原始请求不同的方法(除非不同的方法是GET)。

通常情况下,您可以通过发送“301永久移动”或“302findHTTP”状态码来进行redirect。 他们两个人通常都会在练习中工作,就好像是303 See Other一样,并且有一个GET请求。

有一个307临时redirect(自HTTP / 1.1以来)不允许更改HTTP方法。 这可以用来将POSTredirect到POST,但是请注意,它明确地不允许改变方法,所以你不能使用它redirectGET到POST(甚至POST到GET,否则可能与简单的301或302响应)。

看到这些答案更多的背景:

  • 使用Express JS路由将POSTredirect到POST
  • 请求遵循redirect,无需发布数据