Cakephp AJAX调用不会间歇性地进行身份验证

时间:2015-01-22 03:05:11

标签: php jquery ajax cakephp-2.0

我对CakePHP中的AJAX视图有一个奇怪的问题。此视图是较大视图中的子视图,由AJAX调用构造。大多数情况下一切正常,但大约有十分之一的呼叫在没有身份验证的情况下通过。我在我的AppController中放了一些代码来检查,我无法弄清楚为什么这个调用没有间歇性地进行身份验证。有没有人有任何想法/线索?非常有义务寻求帮助或指导......

这是我加载子视图的AJAX调用

$.ajax({
            url: www_root + 'Cars/listLinksWith/Drivers/' + carId,
            type: 'ajax',
            success: function(data) {
                $('.links').html(data.content);
            }
        });

以下是我的AppController.php中用于调试情况的代码

if ($this->Auth->loggedIn()) {
            ...
            ... do something ...
            ...
        } else {
            if ($this->RequestHandler->isAjax()) {
                $this->log($this->Session->read('Auth'));
            }
            CakeLog::write('error', 'AppController->beforeFilter :: request is being made without login credentials' . print_r($this->request->params, true));
        }

以下是发生错误时我在日志文件中获得的输出

   2015-01-21 20:56:41 Error: 
    2015-01-21 20:56:41 Error: AppController->beforeFilter :: request is being made without login credentials
Array
    (
        [plugin] => 
        [controller] => Cars
        [action] => listLinksWith
        [named] => Array
            (
            )

        [pass] => Array
            (
                [0] => Drivers
                [1] => 20
            )

        [verification_url] => mksAsQ
    )

这很奇怪,让我烦恼......

2 个答案:

答案 0 :(得分:1)

您可能需要查看Session.checkAgentSession.autoRegenerate

答案 1 :(得分:1)

您是否尝试在app / Config / core.php中停用Session.autoRegenerate?每10个失败的事实让我相信它已经启用,这就是你的会话被抛弃的原因。