Cakephp Auth重定向出Ajax

时间:2013-04-19 20:20:38

标签: php ajax cakephp redirect

所以我正在开发一个基于ajax的应用程序。当会话超时时,用户被重定向到ajax本身的users / login ...我希望用户完全重定向到不同的布局。

我已经尝试了以下所有内容,但没有一个有效......

return $this->redirect(array('ajax' => false, 'controller'=>'users','action'=>'login'));

$this->Auth->logoutRedirect = '/';

我甚至设置了$this->autoRender = false;,但都没有。

在会话超时时将用户重定向到ajax的最佳方法是什么?

我目前在AppController中有这个。

if( $this->Auth->loggedIn() !== true && $this->params['action'] !== 'login'){
        $this->autoRender = false;
        return $this->redirect('/');
    }

1 个答案:

答案 0 :(得分:0)

您需要做的是向客户端呈现正确的响应,而不是重定向AJAX请求。

仅重定向当前的AJAX请求不会阻止客户端执行更多请求。 您应该 - 仅针对AJAX请求 - 返回客户端知道将其解释为注销的值,而不是重定向它。

如果您将AJAX请求直接加载到div中(包含在dom树中),您只需返回一个重定向用户的javascript:

<script> window.location = "<signout/signin>.php" </script>