Cakephp授权重定向出Ajax


Cakephp Auth Redirect out of Ajax

所以我正在开发一个基于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('/');
    }

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

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

如果你直接将AJAX请求加载到一个div中(为了包含到dom树中),你可以简单地返回一个javascript,它会重定向用户:

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