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的问题