如何在快速

时间:2017-07-18 18:50:38

标签: node.js express

我正在创建一个登录页面,在点击时会自动触发Facebook身份验证流程。但是,我无法自动从索引重定向到signup路由。如何将GET请求重定向到快递中的POST请求?

    router.get('/', function(req, res) {
        //redirect to login function
    });

    router.post('/signup', passport.authenticate('signup', {
      //Log user in on facebook
    }));

1 个答案:

答案 0 :(得分:2)

无法从GET请求重定向到POST请求。

您所能做的就是将POST请求重定向到POST请求,但即使这样做有时也很棘手,但您永远无法重定向到与原始请求不同的方法(除非GET不同)。

通常,您通过发送301 Moved Permanently或302 Found HTTP状态代码进行重定向。它们通常在实践中工作,好像它是303 See Other并且发出了GET请求。

有一个307 Temporary Redirect(自HTTP / 1.1以来)不允许更改HTTP方法。这可用于将POST重定向到POST,但请注意,明确不允许更改方法,因此您无法使用它将GET重定向到POST(甚至可以将POST重定向到GET,否则可能与一个简单的301或302响应)。

有关更多背景信息,请参阅这些答案: