使用AJAX的Zend Auth Redirect插件

时间:2012-06-06 16:22:21

标签: php ajax zend-framework zend-auth

有没有办法让插件在通过AJAX请求调用时重定向整个页面?

以下是我用于将未经身份验证的用户重定向到登录页面的代码。

public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) {
    if ($request->getControllerName() != 'authentication') {
        if (!Zend_Auth::getInstance()->hasIdentity()) {
            $request->setControllerName('authentication');
            $request->setActionName('login');
            return;
        }
    }
}

这适用于普通请求,但我希望它在用户注销后发出AJAX请求时将用户重定向到登录页面。使用我现在拥有的内容,它为HTML元素中的登录页面加载HTML,该HTML元素被指定用于存放AJAX请求的结果。

如何将浏览器重定向到登录页面,而不是仅仅在当前页面中加载登录页面?

1 个答案:

答案 0 :(得分:0)

好吧,如果我正确理解你。 drew010是正确的,ajax调用是一个不同的http请求,而不是用户实际看到和交互的http请求。所以不使用javascript php无法从一个http连接跳到另一个连接并执行重定向。 PHP不是一种“主动”语言,它是一种“被动”语言。这意味着在页面加载/刷新之前它不会做任何事情。

但是如果你想通过ajax或不是ajax来处理重定向,那么它就是你重定向的发起者。因为那实际上是打电话来触发你想要的整个过程。