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

Cakephp AJAX calls not authenticating intermittently

我对 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
    )

这很奇怪,困扰着我...

您可能想查看 Session.checkAgent and Session.autoRegenerate

您是否尝试在 app/Config/core.php 中禁用 Session.autoRegenerate?事实上,每 10 人中就有 1 人失败,这让我相信它已启用,这就是您的会话被抛出的原因。