Django+axios 前后端分离 跨域 取不到cookie和session的问题

问题背景 :使用Django3.2开发后端,vue开发前端,前后端部署到不同的服务器上。后端配置django-cors-headers解决跨域问题后,发现无法正确使用session,前端无法在cookie中保存sessionid。

浏览器是Chrome

在前端设置:axios.defaults.withCredentials = true
后,仍然无效.

后来在开发者工具中,看到下面的警告,意思是想要设置cookie,需要把SameSite设置为None(Chrome浏览器默认是Lax)
在这里插入图片描述
设置方法是在Django项目的settings.py中添加
SESSION_COOKIE_SAMESITE = ‘None’
在这里插入图片描述
然后还是不行,错误信息变成了
在这里插入图片描述
意思是SameSite设置为None,必须添加Secure属性

接着在后端中进行配置
在这里插入图片描述

但还是不行
在这里插入图片描述
意思是如果设置了Secure,那么必须使用https进行通信,不可以使用http。

根本的解决方案:使用https进行通信,需要下载https证书

测试期的解决方案:使用火狐浏览器

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值