如何在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,无需发布数据