新版本的chrome瀏覽器(80版本之后)對cookie的校驗更加嚴格,有頁面嵌套的可能會出現問題。
chrome升級到80版本之后(最坑的地方:灰度測試,即也可能存在同一版本不同人的瀏覽器表現不同),cookie的SameSite屬性默認值由None變為Lax,該問題的討論可參考:https://github.com/google/google-api-javascript-client/issues/561
解決方法1:
報文里面set-cookie,添加SameSite=None; Secure=true
以此設置之后只能走https協議
解決方法2:
兩個跨域的網站部署到一起,例如
www.xxx.com/A網站
www.xxx.com/B網站
在頂級域名中寫入cookie,在子域名中便可以隨取隨用。
解決方法3:
谷歌瀏覽器里面:
chrome://flags/
把SameSite by default cookies、Cookies without SameSite must be secure參數設置成disabled
總結:
如果對外項目,面向有用戶群,一般都是選擇方案一,比如淘寶等都是采取的這種方式。
視情況而定可采取方案二。
方案三更適合個人使用場景。