背景:
项目A中iframe框架访问项目B中的页面,AB项目是不同的域名,其它浏览器正常访问调取数据(火狐、360等),唯独谷歌浏览器session失效
原因:
Chrome 51 开始,浏览器的 Cookie 新增加了一个SameSite
属性,用来防止 CSRF 攻击和用户追踪。谷歌默认SameSite属性的为Lax。
解决:
网上搜了一些解决方法:Chrome谷歌浏览器跨域请求失效解决方案_Xiao阿的博客-优快云博客_chrome跨域请求错误提示
但以上未能解决我的问题,大家可根据自己的情况来调试,我的最终解决方法一行代码:
在项目B的页面中加入以下代码,服务器端生完session,但客户端未能正常接收,则可参考以下代码,手动传cookie值
header("Set-Cookie:PHPSESSID=".session_id()."; HttpOnly;Secure;SameSite=None");