位置: IT常识 - 正文

【跨域】一篇文章彻底解决跨域设置cookie问题!(跨域的几种方法)

编辑:rootadmin
【跨域】一篇文章彻底解决跨域设置cookie问题! 一篇文章彻底解决跨域设置cookie问题!

推荐整理分享【跨域】一篇文章彻底解决跨域设置cookie问题!(跨域的几种方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:跨域有什么用,跨域以及解决方案,跨域以及解决方案,跨域的问题怎么解决,跨域以及解决方案,跨域以及解决方案,跨域的解决,跨域会出现什么问题,内容如对您有帮助,希望把文章链接给更多的朋友!

大家好我是雪人~~⛄

之前做项目的时候发现后端传过来的 SetCookie 不能正常在浏览器中使用。

是因为谷歌浏览器新版本Chrome 80将Cookie的SameSite属性默认值由None变为Lax。

接下来带大家解决该问题。

原理讲解我们可以看到Cookie有以下属性

Cookie属性

名称:Cookie的name。

值:Cookie的value。

【跨域】一篇文章彻底解决跨域设置cookie问题!(跨域的几种方法)

Domain: Cookie的域。如果设成xxx.com(一级域名),那么子域名x.xxx.com(二级域名),都可以使用xxx.com的Cookie。

Path:Cookie的路径。如果设为/,则同域名全部路径均可使用该Cookie。如果设为/xxx/,则只有路径为/xxx/可以使用该Cookie。

Expires / Max-Age:Cookie的超时时间。如果值为时间,则在到达指定时间后Cookie失效。如果值为Session(会话),Cookie会同Session一起失效,当整个浏览器关闭的时候Cookie失效。

Size:Cookie的大小。

HttpOnly:值为true时,Cookie只会在Http请求头中存在,不能通过doucment.cookie(JavaScript)访问Cookie。

Secure:值为true时,只能通过https来传输Cookie。

SameSite:

值为Strict,完全禁止第三方Cookie,跨站时无法使用Cookie。值为Lax,允许在跨站时使用Get请求携带Cookie,下面有一个表格介绍Lax的Cookie使用情况。值为None,允许跨站跨域使用Cookie,前提是将Secure属性设置为true。

Priority :Cookie的优先级。值为Low/Medium/High,当Cookie数量超出时,低优先级的Cookie会被优先清除。

还需要了解两个概念:

跨站:两个域名不属于同站(域名-主机名/IP相同,协议相同)。跨域:两个域名不属于同源(域名-主机名/IP相同,端口号相同,协议相同)。

并且谷歌浏览器新版本Chrome 80将Cookie的SameSite属性默认值由None变为Lax。

这下就很清楚明了了,有两种解决方案:

将Cookie的SameSite值设为None,Secure值改为true,并且升级为https,我们就可以跨域使用Cookie。将Cookie的SameSite值设为Lax/Strict,并且将前后端部署在同一台服务器下,我们就可以在同一站点使用Cookie。注意:

如果是本地测试想要前后端对接我们就只能使用方案一了两种方案需要先解决浏览器同源策略也就是跨域问题前端设置这里以vue的axios为例import axios from 'axios'// 只需要将axios中的全局默认属性withCredentials修改为true即可// 在axios发送请求时便会携带Cookieaxios.defaults.withCredentials = true后端设置这里以Django为例Django跨域问题请参考另一篇文章:【Django跨域】一篇文章彻底解决Django跨域问题# 我们需要修改 seeting.py 修改项目设置# 记得先设置允许访问的IPALLOWED_HOSTS = ['*']# 就像我们上面所说的一样有两种解决方案# 方案一# 将session属性设置为 secureSESSION_COOKIE_SECURE = True# 设置cookie的samesite属性为NoneSESSION_COOKIE_SAMESITE = 'None'# 且将协议升级为https# 方案二# 前后端部署在同一台服务器即可# 记得先解决ajax的跨域问题# 加入以下代码即可CORS_ALLOW_CREDENTIALS = TrueCORS_ALLOW_ALL_ORIGINS = TrueCORS_ALLOW_HEADERS = ('*')

是不是非常简单呢,不同的前后端框架按照原理解决即可。

如果对你有帮助的话请给我点个赞吧👍。

本文链接地址:https://www.jiuchutong.com/zhishi/289654.html 转载请保留说明!

上一篇:红宝石海滩的日落,华盛顿州奥林匹克国家公园 (© Adam Mowery/Tandem Stills + Motion)(红宝石地址)

下一篇:属于大堡礁的一部分的心形礁,澳大利亚昆士兰 (© Peter Adams/Offset by Shutterstock)(大堡礁的现状)

  • 房产公司预缴土地增值税怎么做账
  • 二手房买卖避税违法吗
  • 递延所得税负债计算公式
  • 报销为什么不能多家赔付
  • 个体户收现金可以开发票吗
  • 新公司第一年要做亏
  • 已付工资在资产负债表中体现
  • 对公的etc怎么绑定怎么充值
  • 物业公司收款一般多久
  • 资产申报是什么
  • 商贸公司运输发票怎么开
  • 稽查补缴增值税做账
  • 契税的会计分录有哪些
  • 企业国有资产无偿划转办法
  • 公司注销时有大额应付款如何做账务处理合适?
  • 现金管理规定有哪些主要内容
  • 个体工商户开具增值税专用发票
  • 跨年发票还可以入账吗
  • 小规模纳税人如何升级为一般纳税人
  • 发票上单价可以开0吗
  • 怎么导出全年开奖记录
  • 公司账户流水要交税吗
  • 房地产开发公司注册资金要求
  • 社保和公积金的钱可以取出来吗
  • 营业外收入怎么开票能开吗
  • 拆迁安置房如何写两人名字
  • 去税局代开开专用发票需要带什么证件?
  • 收到出口退税计入什么
  • 电脑插上u盘
  • 华为授权查询系统
  • 电脑qq音乐声音小怎么回事
  • 结转工资结算中各种代扣款项
  • bios setup uitlity
  • 创业补贴的作用
  • 房产产权置换
  • 补缴断交的医保划算吗
  • 混合筹资的定义
  • php编程基础与案例开发
  • 增值税专用发票上注明的价款含税吗
  • 太平鸟的翅膀上有几道红羽毛
  • unbutun系统
  • 怎么缴销空白发票
  • 贷款的银行卡叫什么
  • thinkphp框架介绍
  • linux suid
  • nginx搭建静态资源服务器
  • 大学生web前端期刊有哪些
  • 控制器eabs
  • 预缴的企业所得税怎么做账
  • 暂未取得发票的费用怎么入账
  • 销售费用和管理费用占比多少合理
  • 借款费用为什么可以企业所得税税前扣除
  • 小规模纳税人税收政策2023
  • 息税前利润的计算公式EBIT
  • 淘宝上买资料可以退吗
  • 微信收款会计分录怎么写
  • 其他应收款对应的预算会计
  • 赠送电影票文案
  • 企业房产税优惠政策2023
  • 销售方开具的红字专票购买方在税控盘要怎么操作
  • 残疾人就业保障金
  • mysql5.7.
  • mysql分组后取最新的一条记录
  • mysql sql语句性能调优
  • solaris init 0
  • net 4.0.30319
  • linux删除用户组和用户
  • win7系统桌面图标变大了怎样恢复
  • grub4dos linux
  • win7安装cad2022
  • 第一个闹钟
  • unity3d应用开发
  • vc6.0配置opengl设置目录路径
  • Node.js中的construct构造函数
  • python pil gif
  • javascript基础教程教材答案
  • 重庆网上税务局个人怎么绑定企业账户
  • 企业吸收合并资质
  • ca登录的用户名和密码分别是什么
  • 红星新闻河南郑州
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设