有没有办法让插件在通过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请求的结果。
如何将浏览器重定向到登录页面,而不是仅仅在当前页面中加载登录页面?
答案 0 :(得分:0)
好吧,如果我正确理解你。 drew010是正确的,ajax调用是一个不同的http请求,而不是用户实际看到和交互的http请求。所以不使用javascript php无法从一个http连接跳到另一个连接并执行重定向。 PHP不是一种“主动”语言,它是一种“被动”语言。这意味着在页面加载/刷新之前它不会做任何事情。
但是如果你想通过ajax或不是ajax来处理重定向,那么它就是你重定向的发起者。因为那实际上是打电话来触发你想要的整个过程。