CakePHP重定向方法不重定向

时间:2012-09-12 09:00:44

标签: ajax cakephp get-request

我正在尝试使用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调用更新数据库中的行。

1 个答案:

答案 0 :(得分:4)

从您的帖子中看来,您正在使用ajax调用触发update_sticky_postition_in_db(),因此重定向无效。

您可以在ajax success方法中使用JavaScript进行重定向。

为了做到这一点,您可以从上面的方法发送一些json_encode()消息,并在ajax success方法中检查该状态,您可以使用window.location进行重定向。