前后端分離跨域axios無法攜帶cookie,谷歌瀏覽器攜帶cookie丟失

最近在項目開發(fā)中遇到一個前后端分離,跨域下用axios請求無法攜帶cookie的問題,弄了很久,記錄一下。

axios默認是發(fā)送請求的時候不會帶上cookie的,需要通過設置withCredentials: true來解決。且需要后端配合設置

header信息?Access-Control-Allow-Credentials:true

Access-Control-Allow-Origin不可以為 '*',因為 '*' 會和 Access-Control-Allow-Credentials:true 沖突,需配置指定的地址。

axios全局配置:

axios.defaults.withCredentials?=?true,

后端的配置,因為后端采用的技術棧不同有不同的配置方式,請根據(jù)自身情況自動百度。

前端配置了:withCredentials: true和后端配置了Access-Control-Allow-Origin后大部分情況下跨域是可以攜帶cookie了,可是最近我遇到了一個比較特殊的情況,這樣設置后,在除了chrome外的瀏覽器都可以正常攜帶cookie,然后最近可能是chrome升級了,在chrome攜帶cookie丟失。怎么也帶不了cookie。明明是登錄成功了,但跳轉有新請求發(fā)送又跳出來了,這種情況可能就是谷歌瀏覽器攜帶cookie失效了,研究了很久找到了解決方案。

參考:https://blog.csdn.net/weixin_39448458/article/details/108323374

解決方法:

一、谷歌瀏覽器訪問 chrome://flags ,搜索SameSite設置為disabled即可!


二、通過后端設置cookie的SameSite屬性?SameSite = None

具體設置參考:https://blog.csdn.net/qq_37060233/article/details/86595102

Cookie 的 SameSite 屬性

Chrome 51 開始,瀏覽器的 Cookie 新增加了一個SameSite屬性,用來防止 CSRF 攻擊和用戶追蹤。

詳細介紹SameSite屬性請看阮一峰老師的解釋,http://www.ruanyifeng.com/blog/2019/09/cookie-samesite.html

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容