位置: 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)(大堡礁的现状)

  • 发放上年年终奖个税
  • 年终奖1月发放能算上一年吗
  • 资产负债表中应付职工薪酬是负数
  • 住宿费取得增值税专用发票,抵扣进项税额如何计算
  • 运输公司支付的运输费计入什么科目
  • 跨年发票问题
  • 车船税应该计入什么费用
  • 库存现金贷方为负数说明什么
  • 亏损企业要做业务处理吗
  • 盈亏平衡点产量越高,项目风险越大
  • 资产报废变现收入应开具哪种发票
  • 存货转固定资产的时点
  • 调试阶段是什么意思
  • 无形资产除了专利还有什么
  • 将债务转为资本会引起负债总额发生变动吗
  • 流动资产投资的特点有
  • 企业所得税税前扣除政策
  • 互联网合同范本
  • 退税勾选的发票账务处理
  • 增值税普票销项负数会影响报销吗
  • 个人所得税申报错误如何更正申报
  • 对外投资增长过快
  • 私立医院适用什么法律
  • 现代服务促销服务费的经营范围
  • 固定资产什么时候增加
  • 应收账款一般按实际发生额入账
  • 小规模的增值税怎么算
  • 库存商品在贷方怎么调回借方
  • Windows10如何切换中英文输入法
  • 联想thinkpad安装win7方法
  • 固定资产未开发票怎么入账
  • 股东分红怎么处理
  • 什么是递延所得税资产和负债
  • 在php中,字符串有哪些表示形式
  • 公司转让使用过的汽车要交哪些税费
  • ubuntu20.04安装make
  • html img位置
  • php修改sql语句
  • 个人出租住房如何开增值税专用发票
  • php处理数组的函数
  • 深入解析windows第7版卷2
  • 给退休人员发放一次性工龄补贴是真的吗
  • 应付账款重分类含不含暂估
  • php自定义变量的方法是
  • 预缴所得税会计分录咋做
  • 发票开错需要让客户寄回来吗
  • 小规模纳税人申报表模板
  • 什么叫预缴款
  • 产成品报废会计处理
  • 未认证的进项税发票入账
  • 财务报表不申报可以领票吗
  • CentOS 6.5 x64系统中安装MongoDB 2.6.0二进制发行版教程
  • 怎么作废银联在网上银行
  • 软件产品增值税即征即退
  • 信用减值借贷方向增减
  • 期末留抵退税计算公式
  • 纳税调整怎么做
  • 出差补助没票怎么做账
  • 公司购买的礼品卡怎么做账
  • 购买扶贫产品属于什么费用
  • 个人承包工程如何缴纳税款
  • 关于财务报销的法律
  • 补交增值税如何入账
  • 规划设计费入什么科目
  • 未达起征点可以申请一次性创业补贴吗
  • sql server 将数字转换成日期
  • mysql2003错误如何解决10061
  • linux切换到home文件夹
  • freebsd怎么样
  • win7开机出现两个系统选项
  • win8取消自动更新
  • eclipse win7
  • nodejs回调函数返回值如何传递给其它函数
  • 改变图片透明度怎么调
  • listview控件设置多个列
  • pythonipo模型
  • python 函数 星号参数
  • Android开发使用的官方IDE是
  • 技术转让条件
  • 2021年福建省灵活就业人员养老保险缴费标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设