我对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
)
这很奇怪,让我烦恼......
答案 0 :(得分:1)
答案 1 :(得分:1)
您是否尝试在app / Config / core.php中停用Session.autoRegenerate
?每10个失败的事实让我相信它已经启用,这就是你的会话被抛弃的原因。