我正在创建一个登陆页面,当点击时,会自动触发Facebook身份验证流程。但是,我无法自动从索引重定向到signup
路由。如何在express中从GET
请求重定向到POST
请求?
router.get('/', function(req, res) {
//redirect to login function
});
router.post('/signup', passport.authenticate('signup', {
//Log user in on facebook
}));
2条答案
按热度按时间o7jaxewo1#
从GET请求重定向到POST请求是不可能的。
你所能做的就是将一个POST请求重定向到一个POST请求,但即使这样有时也很棘手,但你永远无法重定向到一个与原始请求不同的方法(除非这个不同的方法是GET)。
通常,您可以通过发送301 Moved Permanently或302 Found HTTP状态代码来进行重定向。这两种方法在实践中通常都像303 See Other一样工作,并发出GET请求。
有一个307临时重定向(从HTTP/1.1开始),不允许更改HTTP方法。这可以用于将POST重定向到POST,但请注意,它明确不允许更改方法,因此您不能使用它将GET重定向到POST(甚至POST重定向到GET,否则可以使用简单的301或302响应)。
请参阅这些答案以了解更多背景:
wfauudbj2#
})
})
})