阅读 604

chrome运行本地项目无法携带跨域cookie问题解决方案-SameSite=None无法设置问题

背景

通过localhost运行本地管理台项目,打开主页后页面一直自动刷新,无法进行任何操作。

原因

chrome 80版本后浏览器默认的SameSite策略为Lax, 该策略中对于当前域名向第三方域名中发送跨域请求时无法携带cookie, 因此本地管理台项目的请求发出去时都没有携带cookie, 导致后端接口检测不到该请求携带的用户信息,出现前端页面一直刷新的情况。

解决方案:

1. 低于91版本的chrome浏览器:

chrome中打开chrome://flags/#same-site-by-default-cookies,将其设置为disable后重启浏览器再运行项目即可解决。

GYEy0zVu3VomnMrV6DiOmg.png

2. 91版本及以上的chrome浏览器:(方案1在91版本后已被chorme移除)

windows系统:打开chrome快捷方式的属性,在以下位置“目标”后添加“--disable-features=SameSiteByDefaultCookies”后确定,关闭所有浏览器窗口后再重启浏览器运行项目即可解决。

-bJBeGhzIyHm5cGqeUEB2Q.png

mac系统:在terminal中通过命令“open -a "Google Chrome" --args --disable-features=SameSiteByDefaultCookies”开启chrome即可解决

3. 94及以上版本的浏览器

chromium项目官网 (www.chromium.org/updates/sam… 提到在94版本后会移除方案2的设置,因此到时方案1和方案2的解决方案都会失效,到时可以考虑通过代理的方式解决该问题。

bd-5sqvtPZT_drs0IWGlcA.png

文章分类
前端
文章标签