开发中遇到的 cookie 问题

1. cookie 无法跨域携带问题

尽管已经登录,但是请求接口返回状态码:202,msg: '未登录',如下图所示;

1.1 XMLHttpRequest.withCredentials未设置

如果需要跨域 AJAX 请求发送 Cookie,需要withCredentials属性设为true。

① axios 按下图所示配置

② fetch 按下图所示配置

1.2 Access-Control-Allow-Origin 配置为*

如果 1.1 节确认已经配置,接口仍返回msg:'未登录',此时可以查看服务端 Access-Control-Allow-Origin 是否设置为 *,这是因为:

  • 请求的首部中携带了 Cookie 信息,如果 Access-Control-Allow-Origin 的值为“*”,请求将会失败。

1.3 浏览器问题

原因:Chrome 升级到80版本之后 cookie 的 SameSite 属性默认值由 None 变为 Lax,这也就造成了一些访问跨域 cookie 无法携带的问题。

SameSite 有三个值:

  • Strict:仅允许一方请求携带 Cookie,即浏览器将只发送相同站点请求的 Cookie,即当前网页 url 与请求目标 url 完全一致
  • Lax:允许部分第三方请求携带 Cookie
  • None:无论是否跨域都会发送 Cookie

80 版本之前默认是 None,80 版本之后默认是 Lax,所以会有一些跨域请求没有携带 Cookie


解决办法一:

  • Chrome 版本 < 91,输入 chrome://flags/ ,搜索 SameSite by default cookies ,将图中两项设置为 disabled,然后 relaunch

  • Chrome 版本 ≥ 91,使用命令行(未验证
open -a "Google Chrome" --args 
--disable-features=SameSiteByDefaultCookies
  • Chrome 版本 ≥ 94,上述方式都被移除,只能通过本地代理、跨域请求等方法转为非跨域请求等方式

参考

Cookie SameSite 属性

 解决办法二:

91以上版本除使用以上命令行外,也可以使用如下 Chrome 扩展工具;

📎cookie插件v0.2.1.zip

结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/8241.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用wxPython和pillow开发拼图小游戏(四)

上一篇介绍了使用本地图片来初始化游戏的方法,通过前边三篇,该小游戏的主要内容差不多介绍完了,最后这一篇来介绍下游戏用时的计算、重置游戏和关闭窗口事件处理 游戏用时的计算 对于游戏用时的记录,看过前几篇的小伙伴可能也发现…

MATLAB实现图像处理:图像识别、去雨、去雾、去噪、去模糊等等(附上20个完整仿真源码)

图像处理是计算机视觉领域的重要研究方向,MATLAB是一种功能强大的数学计算软件,可以用于图像处理和分析。下面是一些简单的MATLAB图像处理代码示例,包括图像增强、边缘检测、形态学处理、特征提取等。 文章目录 1. 图像增强2. 边缘检测3. 形态…

【雕爷学编程】Arduino动手做(88)---水流量传感器模块3

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

Springboot初识(二)

文章目录 前言一.Spring配置文件1.1 配置文件的作用1.2 配置文件的类型 二.properties配置⽂件说明2.1 基本语法2.2 读取配置文件 三.yml 配置⽂件说明2.1 基本语法2.2 读取配置文件2.3 注意事项 前言 上篇文章我们介绍了什么是SpringBoot和怎么去创建一个SpringBoot项目,现在…

Navicat连接服务器上Docker安装的mysql提示拒绝连接

一、报错的原因 英语翻译 --- ‘不允许主机连接到此MySQL服务器’ (意思是本地账号连接可以登录,但是远程登陆不行) 二、解决方法 ①进入docker中的mysql容器 docker exec -it mysql bash ②登陆mysql mysql -uroot -p ③执行以下步骤…

13.5.3 【Linux】PAM 模块设置语法

PAM 借由一个与程序相同文件名的配置文件来进行一连串的认证分析需求。我们同样以passwd 这个指令的调用 PAM 来说明好了。 当你执行 passwd 后,这支程序调用 PAM 的流程是: 1. 使用者开始执行 /usr/bin/passwd 这支程序,并输入密码&#xf…

Mongodb 多文档聚合操作处理方法(Map-reduce 函数)

聚合 聚合操作处理多个文档并返回计算结果。您可以使用聚合操作来: 将多个文档中的值分组在一起。 对分组数据执行操作以返回单个结果。 分析数据随时间的变化。 要执行聚合操作,您可以使用: 聚合管道 单一目的聚合方法 Map-reduce 函…

基于Java+SpringBoot+vue前后端分离在线商城系统设计实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

spring 存储对象 + 获取对象

前言 本篇在spring中如何使用五大类注释与方法注释将对象加入IOC容器中,了解如何使用注释来获取容器中的Bean对象,如有错误,请在评论区指正,让我们一起交流,共同进步! 文章目录 前言1.通过注释将类加入IoC…

【云计算小知识】云环境是什么意思?有什么优点?

随着云计算的快速发展,了解云计算相关知识也是运维人员必备的。那你知道云环境是什么意思?有什么优点?云环境安全威胁有哪些?如何保证云环境的运维安全?这里我们就来简单聊聊。 云环境是什么意思? 云环境是…

SpringBoot中配置文件的加载

springboot 启动会扫描一下位置的application.properties或者application.yml文件作为springboot的默认配置文件 file:./config/(项目根目录config文件夹下的配置文件) file:./(项目根目录下的配置文件) classpath:/config/(resources目录config文件下的配置文件) classpat…

如何在3ds max中创建可用于真人场景的巨型机器人:第 2 部分

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 创建主体 步骤 1 打开 3ds Max。选择机器人头部后,二次单击鼠标并选择隐藏未选中。机器人的其他部分 除了头部之外,将被隐藏。 打开 3ds Max 步骤 2 在人脸选择模式下&#x…

视图和视图解析器

SpringMVC–视图和视图解析器 基本介绍 在springMVC 中的目标方法最终返回都是一个视图(有各种视图)。 返回的视图都会由一个视图解析器来处理(视图解析器有很多种)。 自定义视图 为什么需要自定义视图 ​ 在默认情况下,我们都是返回默认的视图, 然后这个返回…

Java通过InputStream判断word格式

Java通过InputStream判断word格式 1. 传入inputStream文件流2. 读取文件流前八个字节到字节流数组中3. 转为字符串4. 对比字符串判断文件类型5. 完整代码 Java通过InputStream判断word格式) 1. 传入inputStream文件流 2. 读取文件流前八个字节到字节流数组中 byte[] byteArra…

flink1.16使用消费/生产kafka之DataStream

flink高级版本后&#xff0c;消费kafka数据一种是Datastream 一种之tableApi。 上官网 Kafka | Apache Flink Kafka Source 引入依赖 flink和kafka的连接器&#xff0c;里面内置了kafka-client <dependency><groupId>org.apache.flink</groupId><arti…

C++类与对象 - 2(构造函数和析构函数)(超详细)

构造函数和析构函数 - 超详细讲解 1. 构造函数1.1 概念1.2特性 2. 析构函数2.1 概念2.2特性 1. 构造函数 1.1 概念 对于以下Date类&#xff1a; class Date { public:void Init(int year, int month, int day){_year year;_month month;_day day;}void Print(){cout <&l…

C语言float类型学习

C语言的小数类型有两种&#xff0c;float和double&#xff1b; float 称为单精度浮点型&#xff0c;double 称为双精度浮点型&#xff1b; float 占用4个字节&#xff0c;double 占用8个字节&#xff1b; 下面看一下float&#xff1b; #include <stdio.h>int main() {…

电脑记事本在哪里?电脑桌面显示记事本要怎么设置?

绝大多数上班族在使用电脑办公时&#xff0c;都需要随手记录一些琐碎或重要的事情&#xff0c;例如工作注意事项、常用的文案、某项工作的具体要求、多个平台的账号和密码等。于是就有不少小伙伴想要使用电脑记事本软件来记录&#xff0c;那么电脑记事本在哪里呢&#xff1f;想…

JAVA基础-集合的工具类Collections

目录 引言 一&#xff0c;Collections工具类的操作方法方法 1&#xff0c;排序操作 2&#xff0c;替换 和 查找操作 二&#xff0c;Collections工具类的使用 2.1&#xff0c;排序操作 2.1.1&#xff0c;集合的逆序 2.1.2&#xff0c;集合的随机排序 2.1.3&#xff0c;集…

SkyWalking链路追踪中Trace概念以及Trace与span的关系

基本概念 在SkyWalking链路追踪中&#xff0c;Trace&#xff08;追踪&#xff09;是指一个请求或者一个操作从开始到结束的完整路径。它涵盖了分布式系统中所有相关组件的调用关系和性能信息。 具体来说&#xff0c;Trace包含了一系列的span&#xff08;跨度&#xff09;&…