1.Chrome80

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等代理工具或软件将跨域请求转为非跨域请求来解决改问题。

 以上参考:掘金

更多推荐