【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也适用

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容