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

  • 电子缴款凭证和完税证明都可以做原始凭证吗
  • 税前扣除项目主要内容?
  • 住宿费收据属于什么凭证
  • 小规模纳税人不能抵扣进项税额
  • 如何开增值税专用发票视频
  • 国家研发补贴政策
  • 房屋出租怎么交税?
  • 增资导致丧失控制权
  • 企业缴纳的财产保险费会计分录
  • 出售生产线计入哪里
  • 出差出了事故怎么处理
  • 应交税费附加税期末有余额吗
  • 计提的利息汇算清缴前没发放,需要交企业所得税吗
  • 商品已发出未开票未收款怎么做账
  • 客户以旧料抵货款账务如何处理?
  • 公司变卖后员工怎么办
  • 重复缴税怎么做账
  • 个人去税务局开劳务票 税点是多少
  • 增值税发票地址开错了有影响吗
  • 工会经费的计税基础
  • 2018一般纳税人印花税减半吗
  • 劳务分包发票税率是多少2020
  • 计提递延所得税费用会计分录
  • 股东赠与计入资本公积,交税
  • 小规模企业企业所得税优惠政策2022年
  • 委托加工物资在初级第几章
  • 分配车间管理人员薪酬会计分录
  • 土地征收补偿款多久到账
  • 付款后收到发票怎么写摘要
  • win10版本1909和22h2
  • php的数组函数
  • element-plus vue
  • 期间费用为何要摊销
  • vue实战技巧
  • vue有哪些方法
  • 购物赠品的相关法律
  • 上级拔入资金
  • 分公司能给总公司担保吗
  • 帝国cms好用吗
  • 现金银行本票的签发人是谁
  • java获取resources下文件路径
  • sqlserver2008误操作数据
  • 银行托管账户的规定有哪些
  • 房产税中出租房产原值怎么算
  • 差旅费津贴要交税吗怎么算
  • 增值税纳税人放弃免税权的规定
  • 发票已抵扣但对方要红冲账务处理
  • 清算期间发生的利息支出应计入
  • 企业取得财产转让收入
  • 银行存款支付业务招待费
  • 个体户能开增票吗?
  • 附加税减免政策2023
  • 如何填写社会保障卡信息
  • 如果找国外客户
  • 个人如何购买定增的股票
  • 管理费用通俗理解
  • 红字冲销凭证怎么登明细账
  • debian9.6安装教程
  • mysql 创建root用户和普通用户及修改删除功能
  • win10服务怎么打开
  • win7怎么看
  • windows怎么安装apk
  • xp显示文件后缀怎么设置
  • unable to boot - please use a kernel appropriate for your cpu的解决方法
  • linux中命令行
  • windows显示内部版本
  • javascript的理解
  • jquery有什么功能
  • js编程代码
  • Node.js中的全局对象有
  • python多线程操作
  • 基于nodejs的api框架
  • linux监控网络请求
  • 自动删除文件脚本bat
  • AssetBundle.Unload(false)的作用
  • 广东省电子税务局登录方式
  • 西安国家税务局官网首页
  • 工会经费计税依据工资总额包括什么
  • 山东水利建设基金减免政策
  • 个人转让住宅需要缴纳什么税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设