Google chrome Chrome不为本地主机发送任何cookie

Google chrome Chrome不为本地主机发送任何cookie,google-chrome,cookies,Google Chrome,Cookies,我在Max OS Catalina 10.15.7上运行Chrome 91.0.4472.77正式版x86_64 我有一个前端和后端,分别位于fe.example.com和be.example.com。当我访问fe.example.com时,我看到许多cookies被列为.example.com,这些cookies都包含在对be.example.com的后端请求中 但是,对于本地开发,我有一个/etc/hosts记录映射localhost.example.com作为127.0.0.1的别名。我创

我在Max OS Catalina 10.15.7上运行Chrome 91.0.4472.77正式版x86_64

我有一个前端和后端,分别位于fe.example.com和be.example.com。当我访问fe.example.com时,我看到许多cookies被列为.example.com,这些cookies都包含在对be.example.com的后端请求中

但是,对于本地开发,我有一个/etc/hosts记录映射localhost.example.com作为127.0.0.1的别名。我创建了一个本地CA,并指示我的操作系统信任它,使用它生成证书,当我访问时,Chrome表明这是一个安全和可信的连接。当我点击锁定图标并选择Cookie时,我可以看到我关心的所有Cookie都列在“允许”选项卡中,而没有一个列在“阻止”选项卡中。如果我选中带有阻止Cookie的请求框,则DevTools网络选项卡中没有列出任何请求。但是:

没有随任何请求一起发送Cookie。后端无法识别接收到任何cookie,并且“网络”选项卡在请求标题下根本没有列出cookie标题。复制为cURL还生成一个没有cookie的命令。如果fe.example.com的网络选项卡中的每个请求都有一个Cookies子选项卡,该子选项卡提供了有关每个cookie被/未被包括的详细信息,那么从localhost.example.com发送的请求实际上根本没有Cookies选项卡

这似乎很相似。这个chrome://flags/network-service 标志不再存在于我最新的Chrome版本中,并且chrome://flags/site-isolation-trial-opt-out flag并没有解决这个问题,而且启动起来似乎相当危险

我不知道这两个站点之间的区别因素是什么,但我唯一能想象的是,这与一个域名解析为环回地址而另一个不解析有关。我试图搜索有关Chrome以不同方式对待localhost的任何信息,我发现的一切都表明Chrome应该对localhost上的Cookie更加宽容,而不是更少。顺便说一下,如果我将localhost.example.com指向本地运行的localbe.example.com,而不是指向be.example.com,则行为是相同的

我试着翻动我能找到的每一个与饼干相关的实验标志,但都无济于事。我还注意到Firefox的行为是相同的,至少从fe.example.com传输cookie,但不从localhost.example.com传输cookie。两个浏览器都将相关Cookie列为已设置并与当前域匹配,并且两个浏览器都未将任何Cookie列为已阻止

关于如何让Chrome在本地开发环境中发挥作用,有什么想法吗

注意:看起来很相似,但我不认为这有什么关系,因为我总是用一个包含多个部分的域名来引用我的本地服务器


编辑:如果我将域名映射到我的专用LAN IP地址,而不是127.0.0.1,那么问题仍然存在。

这完全是一个转移视线的问题,事实证明这是一个角度问题,而不是浏览器配置。角度前端未显式设置withCredentials标志。在我们部署的环境中,这并不重要,因为FE和BE通过负载平衡器从同一端口提供服务。在这种情况下,有人或浏览器?默认情况下发送cookie。如果主机完全不同,即使是在端口上,则需要在XHR请求上显式设置此配置。

尝试此操作

open-a Google Chrome-args-disable features=SameSiteByDefaultCookies,Cookies Without-AmeseSite必须安全