2

我正在尝试使用 CakePHP 重定向方法重定向到新页面,但由于某种原因重定向不起作用。我用来重定向的代码是

public function update_sticky_postition_in_db()
{   
     $this->autoRender = false;

     ... // Save info to database

     $this->redirect(array('action' => 'tool'));
}

其中 tool 是我要重定向到的视图的名称。为了尝试加快发现问题的过程,我检查了几件事,并认为我已经找到了问题的原因。基本上我正在尝试重定向到当前处于活动状态的视图,我认为这是它不重定向的部分原因。我读过它可能与页面缓存有关,但我不确定如何解决该问题。

此外,当使用 firebug 时,我可以看到重定向正在发送一个 GET 请求,但之后什么都没有发生。我必须对 GET 请求做些什么,还是应该让 Cake 为我处理。我还检查了 GET 的 URL,它是正确的。

它位于具有正确名称的控制器内,因为我可以查看原始工具页面。

update_sticky_postition_in_db() 方法也没有视图(因此自动渲染设置为 false),其预期目的是通过 ajax 调用更新数据库中的一行。

4

1 回答 1

4

从您的帖子看来,您正在触发update_sticky_postition_in_db()using ajax 调用,因此重定向将不起作用。

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

为此,您可以json_encode()从上述方法中发送一些消息,并在 ajax 方法中检查该状态,success您可以使用window.location.

于 2012-09-12T10:11:11.517 回答