vue-axios 发送请求,cookie带不上

问题

 首先配置是没问题的但是 chrome 请求cookie携带不上

全局配置
axios.defaults.withCredentials = true

或者单个请求头配置

withCredentials:true


    具体表现      

 最近在玩vue-axios,发送验证码和登录请求的时候需要携带cookie信息,但是死活携带不上去(本人平常用的都是chrome浏览器),后来实验了下FireFox竟然可以,没理由我chrome不可以呀,遂深入了解了下


   原因

      发现是chrome是从51版本开始,Cookie 新增加了一个SameSite属性,用来防止 CSRF 攻击和用户追踪。

  简单来说SameSite属性用来限制第三方 Cookie,从而减少安全风险

具体 SameSite 解释引用  阮一峰的一篇文章


 解决方案

1. 换用其他浏览器例如FireFox

2.还用chrome ,地址栏 输入 chrome://flags/  

  搜索 samesite ,看到搜索结果 含有 SameSite 改为Disabled

 ok,重启,测试搞定


3.修改架构不用跨域调用

上面两种方法都是应急使用的,都不符合应对场景的话,推到重来,不跨域

4.申请SSL证书

最好的解决方案就是申请一个ssl证书,以https的形式来调用,设置cookies头为Set-Cookie: token={token}; SameSite=None; Secure


初心

我所有的文章都只是基于入门,初步的了解;是自己的知识体系梳理;

如果能帮助到有缘人,非常的荣幸,一切为了`部落`的崛起;

共勉

你可能感兴趣的:(vue-axios 发送请求,cookie带不上)