我有express
路线。我设置了header
和cookie
然后重定向。
router.get("/callback", async (req, res) => {
res.cookie("token", token, {
maxAge: COOKIE_EXPIRATION_MILLISECONDS
});
res.header("TEST", "HEADER");
res.redirect("/test");
});
当我点击/test
时,token
已设置且可用。我没有名为header
的{{1}}。为什么我没有TEST
?如何通过header
传递header
?
答案 0 :(得分:2)
您的标头很可能与响应一起发送,但是当浏览器实际遵循重定向并且然后请求新网址时,您将无法看到该标头。浏览者不这样做。请记住,当您执行res.redirect()
时,它会发送一个302状态和位置标头的响应。浏览器看到302并读取位置标题,然后向服务器发出新的浏览器请求以获取重定向的位置。上一个响应中的标题不会添加到重定向位置的新请求中。
将这样的数据传递给重定向的请求的常用方法是:
只有上面的第一个选项(查询参数)是完全安全的,因为如果有来自同一用户的其他请求,其他人可能会对数据属于哪个请求感到困惑。