【问题标题】:I am unable to accessing the session in cakephp 3.3 during make ajax request在进行 ajax 请求期间,我无法访问 cakephp 3.3 中的会话
【发布时间】:2023-03-03 04:51:14
【问题描述】:

这是我的控制器操作。

public function getData(){

   if($this->request->is('ajax')) {  
      $session = $this->request->session();
      $data=$session->read('User.access_token');
      $this->set('data', $data);
      $this->set('_serialize', 'data');
   }
}

这是我在 cakephp 3.3 中的控制器动作。我想获取我的会话数据,但它显示错误代码 500。我已经编写了会话数据,并且正在执行正常的行动呼吁。我也提到了https://stackoverflow.com/a/19861698/3110742


以下是我的会话编写部分。


public function oauthcallback(){
  $session = $this->request->session();
  $session->write('User.access_token', $google_sess);
}

【问题讨论】:

  • 请同时显示会话创建部分。
  • @Rik.esh 我在阅读会话时检查了正常请求,它已被填充。我还添加了我设置的方式。
  • 每当收到错误时,请始终发布complete错误,即包括full堆栈跟踪(最好是从日志中以正确可读的方式复制),即使问题对于熟悉 CakePHP 的人来说可能很明显!
  • @ndm 在此期间我没有得到任何堆栈跟踪,只会生成一个空白响应。它只是跳过我正在检查会话是否存在的块。如果我在它之前或之后打印了一些字符串,那么它会在响应中显示。我也想参考这个stackoverflow.com/questions/11768816/… 但我认为这不是问题,因为当我在没有 ajax 的情况下访问控制器操作时它显示正确回应。

标签: php ajax session cakephp-3.0


【解决方案1】:

需要查看ajax调用来确认,但通常在调用错误的url时会出现错误500。

我建议始终使用 Url 助手以避免任何问题(也适用于路由)

例如:

$("#my-ajax-btn").click(
    function()
    {                
        jQuery.ajax({
            type:'POST',
            async: true,
            cache: false,
            url: '<?= $this->Url->build(['plugin' => null, 'controller' => 'Controllers', 'action' => 'action']) ?>'
        });
        return false;
    }
);

CakeBook 网址约定: https://book.cakephp.org/3.0/en/intro/conventions.html

CakeBook 网址助手: https://book.cakephp.org/3.0/en/views/helpers/url.html

【讨论】:

  • Similler 问题发生在stackoverflow.com/questions/11768816/… 但我认为这不是问题,因为当我在没有 ajax 的情况下访问控制器操作时,它显示了正确的响应。
  • 使用您迄今为止发布的代码是不可能得到问题所在的。尝试检查服务器错误日志,应该会为您指明正确的方向。
  • 在此期间我没有得到任何堆栈跟踪,只会生成一个空白响应。它只是跳过我正在检查会话是否存在的块。如果我在它之前或之后打印了一些字符串,那么它就会作为响应显示出来。
  • 并不意味着来自 cakephp 的堆栈跟踪,但 server error log 如果不可用 cakephp 在 /log 也有错误日志,其中 / 是 cakephp 应用程序路径
  • 非常感谢您,但我的日志目录中没有关于此的错误日志。我的日志目录已满,至少有 25 个调试和错误日志文件。我已经清理过了。但是问题已经解决了,我不知道如何。
猜你喜欢
  • 2015-11-19
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多