1.Chrome
80
Chrome
升级到80版本之后cookie
的SameSite
属性默认值由None
变为Lax
,这也就造成了一些访问跨域cookie
无法携带的问题。比如本地调试时使用http://localhost:3000/
,而cookie
是种在测试环境路径下这就造成本地调试跨域访问不通了。可以考虑在本地开发环境下disable
该SameSite
属性。在Chrome
中访问chrome://flags/
,搜索SameSite
并设置为disabled
即可。
2. Chrome 90
91版本的chrome已经把上述两个设置给隐藏了,那我们就不能在链接中优雅修改cookie的连接方式了。还好,windows上能够解决这个方式;mac上也是能够解决这个问题的。
Windows:打开Chrome快捷方式的属性,在 目标 后添加
--disable-features=SameSiteByDefaultCookies
或者
--flag-switches-begin --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure --flag-switches-end
Mac:Mac系统下可以通过命令行携带参数打开浏览器的方式来解决,前提须关闭所有浏览器窗口并退出浏览器后再进行操作。
开启Chrome命令:
open -a "Google Chrome" --args --disable-features=SameSiteByDefaultCookies
3. 94及以上版本的Chrome浏览器
Chromium项目官网提到在94版本通过命令行禁用设置SameSite默认值的方式会被移除,到时方案1和方案2的方式都将无法使用,后续可通过nginx等代理工具或软件将跨域请求转为非跨域请求来解决改问题。
以上参考:掘金
更多推荐
关于谷歌无法携带cookie的解决方案
发布评论