0

有没有办法让插件在通过 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,该元素被指定用于存放 AJAX 请求的结果。

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

4

1 回答 1

0

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

但是,如果您想通过 ajax 或不通过 ajax 处理重定向,则它是您重定向的发起者。因为这实际上是调用触发您想要的整个过程的原因。

于 2012-06-08T15:27:37.433 回答