我正在创建一个登陆页面,点击该页面时会自动触发 Facebook 身份验证流程。但是,我无法自动从索引重定向到signup
路线。如何从GET
请求给一个POST
要求快递?
router.get('/', function(req, res) {
//redirect to login function
});
router.post('/signup', passport.authenticate('signup', {
//Log user in on facebook
}));
无法从 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 响应)。
请参阅这些答案以了解更多背景信息:
- 使用 Express JS 路由将 POST 重定向到 POST https://stackoverflow.com/questions/40514912/redirect-post-to-post-using-express-js-routes/40515723#40515723
- 请求遵循重定向而不发送数据 https://stackoverflow.com/questions/43409925/request-follow-redirection-without-post-data/43410010#43410010
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)