关于 axios.defaults.withCredentials = true 不生效问题

关于 axios.defaults.withCredentials = true 不生效问题

在Vue开发过程中,跨域一直是无法避免的问题,跨域的解决可以通过:

  • 后端设置允许跨域
  • 前端设置反向代理
    来进行解决,相关方法在百度上有很多,直接百度Ctrl+C``Ctrl+V即可。
    但是关于在VUE项目中,后端使用SESSION的问题,因为后端使用SESSION是服务器端与浏览器端需要靠cookie的传递来实现鉴权识别,通过服务端在返回时发送set-cookie来自动设置到浏览器的cookie中,然后再之后请求的时候通过Request Headers中的cookie来识别SESSION信息,而在浏览器的协议中,cookie是只有在同源环境下,也就是不跨域的环境下才会自动请求带上cookie,而Vue的项目前后端分离的情况下,大部分情况是不同源的单独部署项目,所以无法自动带上cookie
    而Vue全家桶使用的axios是有响应的解决方案的axios.defaults.withCredentials = true;,通过设置这个参数来允许跨域的时候带上cookie信息,如果在设置这个参数之后出现了跨域错误,那么需要后台设置响应的Headers参数来处理,

重点

但是在我设置了axios.defaults.withCredentials = true;之后依然没有带上cookie信息,在网上找了很多文章也没有发现解决办法,最后在Response里面发现了问题,就是在浏览器的SiteSame的设置有问题。
在chrome 80版本之后,谷歌把cookie的SameSite属性,从None改成了Lax。这时候,会导致cookie因为跨站而导致不会自动带上!
所以需要后台在请求返回的时候 添加设置SiteSame 属性为 None 怎么设置百度即可找到。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值