我正在尝试使用CakePHP重定向方法重定向到新页面但由于某种原因重定向无法正常工作。我用来重定向的代码是
public function update_sticky_postition_in_db()
{
$this->autoRender = false;
... // Save info to database
$this->redirect(array('action' => 'tool'));
}
其中工具是我要重定向到的视图的名称。为了尝试加快找到问题的过程,我已经检查了一些事情,并认为我找到了问题的原因。基本上我正在尝试重定向到当前活动的视图,我认为这是它不重定向的部分原因。我已经读过它可能与页面缓存有关,但我不知道如何解决这个问题。
同样在使用firebug时,我可以看到重定向正在发送GET请求,但之后没有任何事情发生。我是否必须对GET请求执行某些操作,或者Cake应该为我处理该问题。我也检查了GET的URL,这是正确的。
它位于控制器内,名称正确,因为我可以查看原始工具页面。
update_sticky_postition_in_db()方法也没有视图(因此自动渲染设置为false的原因),其预期目的是从ajax调用更新数据库中的行。
答案 0 :(得分:4)
从您的帖子中看来,您正在使用ajax调用触发update_sticky_postition_in_db()
,因此重定向无效。
您可以在ajax success
方法中使用JavaScript进行重定向。
为了做到这一点,您可以从上面的方法发送一些json_encode()
消息,并在ajax success
方法中检查该状态,您可以使用window.location
进行重定向。