【TP5.0】解决多应用模式下session的设置获取问题

项目中的登录模块需要使用到session来保存用户的登录态,但是设置之后在另外的控制器中就获取不到,几番寻找终于解决

起因测试

在index/controller/index方法中

$session = session( test , session ); // 设置session
dump(session( test )); // 打印   session 

登录控制器api/member/login方法中

$session = session( test ); // 获取session
dump($session); // 打印 bool(true)

为啥??
起码也要给我返回个null或者false啥的,给个true还真是让人摸不着头脑

解决

根据多方消息,得到一下多种解决方案

  1. 修改 php.ini 中 session.use_trans_sid = 1,无效果
  2. ajax配置

xhrFields: {
    withCredentials: true
},
crossDomain: true

axios配置

axios.defaults.withCredentials = true;

好像也不行
最后在控制器中添加

header("Access-Control-Allow-Origin: *");

就可以了,按理说前端设置header头应该也可以
基于这套,对tp的Cache也适用

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容