90版本以上的谷歌浏览器,本地请求不携带cookie
1.发现问题
本地用谷歌浏览器跑localhost代码在登录页面去登录,接口一直报请求超时(之前没有问题),经查看前端在发送请求的时候没有携带cookie(如下图)

2.产生问题原因
经过测试,谷歌浏览器线上代码没问题√,谷歌浏览器跑本地代码localhost有问题×,火狐浏览器线上代码没问题√,火狐浏览器跑本地代码localhost没有问题√;
原因是:Chrome禁用第三方Cookies的计划,在91版本后谷歌浏览器把same-site-by-default-cookies和cookies-without-same-site-must-be-secure这两选项给关了而且设置成默认开启(开发环境下需要禁用这两项),从而导致了请求时没有携带cookie
3.解决办法
先把谷歌浏览器关闭,鼠标右键谷歌图标,把这句话 --disable-features=SameSiteByDefaultCookies 直接拷贝到目标输入框后面

效果:

或者 把http://localhost换成127.0.0.1 (2021.08.25修改)
4.感谢
Chrome/Edge 91版本SameSite by default cookies被移除后的解决方案
google浏览器cookie跨域携带和samesite的问题

本文介绍了在谷歌浏览器91及以上版本中,由于默认禁用了SameSiteByDefaultCookies和cookies-without-same-site-must-be-secure,导致本地localhost请求不携带cookie的问题。提供了禁用该特性的临时解决方案和修改localhost为127.0.0.1的方法。

1719

被折叠的 条评论
为什么被折叠?



