chrome浏览器91版本,Chrome中跨域请求无法携带Cookie的解决方案
前些时候,发觉自己的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
或者添加
--flag-switches-begin --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure --flag-switches-end
,点击确定,就搞定了。这里目标后头注意需要有空格,一个乃至多个都可以的。
Mac:Mac系统下可以通过命令行携带参数打开浏览器的方式来解决,前提须关闭所有浏览器窗口并退出浏览器后再进行操作。
开启Chrome命令:
open -a "Google Chrome" --args --disable-features=SameSiteByDefaultCookies
开启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://juejin.cn/post/6967695146322247716
https://blog.csdn.net/weixin_46146313/article/details/117707199
chrome浏览器91版本,Chrome中跨域请求无法携带Cookie的解决方案相关推荐
- 面试官问:跨域请求如何携带cookie?
大家好,我是若川.持续组织了6个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步.同时极力推荐订阅我写的<学习源码整体架构系列 ...
- Ajax跨域请求时携带cookie
在使用Ajax技术发送跨域请求时,默认情况下是不会在请求中携带cookie信息的. 如果需要在跨域请求中携带cookie,则需要对客户端和服务器都进行设置. 客户端代码: xhr.withCreden ...
- chrome 91版本 解决跨域请求SameSite
个人网站 https://kuangyx.cn 91版本之前 地址栏输入chrome://flags并回车 搜索栏中输入SameSite by default cookies搜索,会有两项设置 改为D ...
- Chrome 跨域 请求不携带cookie
一个月没动的项目,今天突然需要优化一个功能,项目启动,美滋滋的 localhost:8082访问前端页面,登录成功, 访问数据页面,报未登录 一脸懵逼,一个月前好好的项目,突然就出问题了,查看下请求发 ...
- 详细记录如何在跨域请求中携带cookie
1. 搭建环境 1.生成工程文件 npm init 2.安装 express npm i express --save 3.新增app1.js,开启服务器1 端口:3001 const express ...
- 解决chrome浏览器高版本/98版本无法在本地手动添加cookie,刷新无法保留,cookie项报红的问题
解决chrome浏览器91版本SameSite by default cookies被移除后的解决方案,Chrome中跨域POST请求无法携带Cookie的解决方案 昨天上班之后启动项目,谷歌浏览器自 ...
- Chrome 96 版本无法发送跨域请求的问题 解决方案
前言 我之前那个篇文章 Chrome 96版本无法携带cookie问题的解决方案 解决的问题是 因为跨域导致的无法携带cookie 的问题,而不是 跨域 问题,因为网上现有的解决方案可以通过配置chr ...
- chrome浏览器ios版本迎来“信用卡扫描器”代码
chrome浏览器ios版本迎来"信用卡扫描器"代码 近日,有开发者向 iOS 版 Chrome 谷歌浏览器提交了有关"信用卡扫描器"(Credit Card ...
- Google Chrome 浏览器最新版本 71.0.3578.98(正式版本) (64 位)
Google Chrome 浏览器 最新版本 71.0.3578.98(正式版本) (64 位) 链接地址:https://share.weiyun.com/5uX1wRc 转载于:https://w ...
最新文章
- Flutter底部导航栏的实现
- 利用进化算法进行仿k-means聚类(可称之为EA-KMeans算法)
- arraylist 初始化_第一章 C#数据结构--数组和ArrayList
- openresty完全开发指南_送给你,PBA商业分析指南(全书下载)
- float32精度_混合精度对模型训练和推理的影响
- 如何用SendMessage模拟某一按钮的点击事件
- openssl s_server
- JDK 14中的常规,安全和确定性外部内存访问
- java getselecteditem_java – 将getSelectedItem()从JComboBox转换为int或任何其他东西
- Python小白的数学建模课-15.图论的基本概念
- 优必选能开放软硬件源代码吗_开放式硬件为何胜出
- Android画布和图形绘制---Canvas and Drawables(一)
- mysql手工注入imformation_mysql 简单手工注入
- ASP基础教程:ASP脚本变量、函数、过程和条件语句
- 不再为 Node.js 模块自动引入 Polyfills
- STM32CUBEF4 实现USB 虚拟串口
- JMP软件在质量管理中的应用简述
- 条码电子秤商品怎么录入?
- 如何在chrome浏览器设置夜间模式
- color model(颜色模型/色彩模型)