1
我用我的CakePHP應用程序頻繁JQuery的Ajax調用(後,加載)。通常將內容加載到div的,且內容與誰是登錄的用戶相關在CakePHP中失去驗證會話JQuery的Ajax調用
我使用默認形式的認證,並定義登錄的用戶在AppController中:
$this->aU = $this->User->findById($this->Auth->user('id'));
這個我後通常使用$ this-> aU在控制器中登錄的用戶,並且在普通視圖渲染中工作正常。 但是,當我使用ajax和setinterval渲染視圖時,20次中有1次失敗,並且控制器重定向請求,因爲看不到登錄的用戶。
var interval = setInterval(function() {
$('#alerts').load('<?php echo $this->Html->url('/users/alerts'); ?>');
}, 20000);
在UsersController提醒我用這個動作:
public function alerts() {
$this->layout = 'ajax';
$user = $this->aU;
$this->loadModel('Message');
$unread_messages = $this->Message->find('count', array(
'conditions' => array('receiver_user_id' => $user['User']['id'])
));
$this->set(compact('user', 'unread_messages'));
}
也許我用錯邏輯用戶識別?
希律喜的是更加穩定調用這個樣子?我之前嘗試過,我已經看到它是一樣的。 – paltamas
嘗試調試$ this-> Auth-> user('User.id')和$ this-> Auth-> user('id'),看看返回的值是什麼。一個應該沒問題一個應該是空的我猜 –
我現在再試一次,只有$ this-> Auth-> user('id')很好。看來這個Auth用戶數組「有時」是空的。 20次中的1次。 – paltamas