chrome浏览器91版本,Chrome中跨域请求无法携带Cookie的解决方案
前些时候,发觉自己的vue项目node环境上跑不起来。请求后台的接口直接来了个400报错。如下:这一看,不太妙,服务器直接来一个“您提交的数据无法被验证” 。好家伙,发现就是携带的cookiedi丢失了。请求接口Set-Cookie后头有一个黄色的感叹号,鼠标放上去有一个浮窗弹出,大致意思就是说,有一个另一个域的请求被组织了,可以通过将“SameSite=Lax”修改成为“SameSite=Non
前些时候,发觉自己的vue项目node环境上跑不起来。请求后台的接口直接来了个400报错。如下:
这一看,不太妙,服务器直接来一个“您提交的数据无法被验证” 。好家伙,发现就是携带的cookiedi丢失了。请求接口Set-Cookie后头有一个黄色的感叹号,鼠标放上去有一个浮窗弹出,大致意思就是说,有一个另一个域的请求被组织了,可以通过将“SameSite=Lax”修改成为“SameSite=None”。意思很明确了,就是人家google的浏览器chrome不让跨域乱搞了,哦豁,这就玻璃心了。我y的就在自己的项目捣鼓,你管我跨域干嘛呢?我又不上天。特别是新版本的chrome这个安全性是真的重重设置的,没办法,谁让他们的浏览器好用呢,我只好自己去寻找解决方式。
如果这个时候按照chrome旧版本的修改方式,放眼91版本之前的版本来说,还是可能行得通,毕竟人家老版本的还能够在chrome://flags/访问页面中,找到samesite 将same-site-by-default-cookies,和SameSite by default cookies。居然能够找到,而且后边还有操作的选择,那就直接改就完事了的。
Chrome中访问地址chrome://flags/ 搜索samesite 将same-site-by-default-cookies,和SameSite by default cookies这两项设置为Disabled后重启浏览器再运行项目即可解决。该设置默认情况下会将未指定SameSite属性的请求看做SameSite=Lax来处理。
91版本的chrome已经把上述两个设置给隐藏了,那我们就不能在链接中优雅修改cookie的连接方式了。还好,windows上能够解决这个方式;mac上也是能够解决这个问题的。
Windows:打开Chrome快捷方式的属性,在 目标 后添加
–disable-features=SameSiteByDefaultCookies
1
或者添加
–flag-switches-begin --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure --flag-switches-end
1
,点击确定,就搞定了。这里目标后头注意需要有空格,一个乃至多个都可以的。
Mac:Mac系统下可以通过命令行携带参数打开浏览器的方式来解决,前提须关闭所有浏览器窗口并退出浏览器后再进行操作。
开启Chrome命令:
open -a “Google Chrome” --args --disable-features=SameSiteByDefaultCookies
1
开启Chromium版Edge浏览器命令:
open -a “Microsoft Edge” --args --disable-features=SameSiteByDefaultCookies
https://www.chromium.org/updates/same-site 里边有SameSite Updates,里边有一句话“Latest update:
Mar 18, 2021: The flags #same-site-by-default-cookies and #cookies-without-same-site-must-be-secure have been removed from chrome://flags as of Chrome 91, as the behavior is now enabled by default. In Chrome 94, the command-line flag --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure will be removed.”
这就不太妙了,到94版本的时候,上述的两个属性直接要被剔除掉。
所以那个时候,可以用回旧版本的chrome,也可以让后台不要用cookie传参了,可以用token的就不要用cookie。或者直接在开发环境作业, 同样也使用https也许是最简单的一种办法。当然了,不用chrome也是一个解决方式。
原文链接:https://blog.csdn.net/qq_31968791/article/details/117964736
更多推荐
所有评论(0)