无法使用heroku将cookie发送到后端

tro*_*gne 2 heroku node.js express

我正在向我的后端发出 axios 请求,并设置一个 cookie :

axios.get(`http://mybackend/somepage`)
     .then((response) => {
        res.cookie('token', response.data.token)
        res.send(`click here <a href="http://mybackend/profile">profile</a>`)
})
Run Code Online (Sandbox Code Playgroud)

在我的后端,我使用带有“cookie-parser”的express。

单击后端的链接,我得到以下内容console.log(req.cookies):“[Object: null prototype] {}”。

查看请求标头,cookie 甚至没有发送。

我在本地主机上测试时没有这个问题。

是因为无法在两个域(在本例中是 2 个 heroku 应用程序)之间交换 cookie 吗?

sam*_*han 5

不,您不能在两个 Heroku 应用程序之间发送 cookie...
\n*.herokuapp.com已添加到公共后缀列表中,这意味着您无法在这些站点之间交换 cookie。

\n
\n

herokuapp.com 包含在 Mozilla Foundation\xe2\x80\x99s 公共后缀列表中。该列表在多个浏览器(例如 Firefox、Chrome 和 Opera)的最新版本中使用,以限制 cookie 的范围。换句话说,在支持该功能的浏览器中,herokuapp.com 域中的应用程序将被阻止为 *.herokuapp.com 设置 cookie。请注意,目前可以在 Internet Explorer 中设置 *.herokuapp.com cookie,但不应依赖此行为,并且将来可能会发生变化。
\n文章

\n
\n

其他StackOverflow 问题

\n

修复

\n
    \n
  • 您可以使用自定义域名
  • \n
  • 您的第二个站点位于firstSite.herokuapp.com/secondSite
  • \n
\n