所以我正在做一个项目,前端是在vercel上托管的Next.JS,后端是在heroku上托管的Express.JS。我使用express-session和passport JS来存储会话。在前端,我使用axios进行HTTP调用。会话的cookie被保存在Chrome上,但在Safari上却没有保存。我看过多个StackOverflow帖子,但都没有成功。Safari在头中接收cookie,但没有保存cookie
下面是我在express上的cors配置这里有什么问题?
ghhaqwfi1#
好吧,原来发生这种情况的原因是Safari不允许跨域cookie。所以,唯一真正解决这个问题的方法是将后端和前端托管在同一个域的不同子域上。
d6kp6zgx2#
如果您无法在同一个域中部署它们,您可以在Safari设置(移动的和浏览器)中关闭Prevent Cross-Site Tracking,使其与第三方域Cookie一起工作。
Prevent Cross-Site Tracking
2条答案
按热度按时间ghhaqwfi1#
好吧,原来发生这种情况的原因是Safari不允许跨域cookie。所以,唯一真正解决这个问题的方法是将后端和前端托管在同一个域的不同子域上。
d6kp6zgx2#
如果您无法在同一个域中部署它们,您可以在Safari设置(移动的和浏览器)中关闭
Prevent Cross-Site Tracking
,使其与第三方域Cookie一起工作。