【发布时间】:2012-09-05 06:18:18
【问题描述】:
我正在尝试使用 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 调用更新数据库中的一行。
【问题讨论】:
-
你是只有这个页面还是所有页面都有这个问题?
-
它似乎不会重定向到任何页面。另外我应该添加重定向不在控制器的工具方法中。
-
你能显示上下文吗,$this->redirect 在哪里...(我假设它在控制器中是的?)
-
发布更多控制器代码和视图。但是你必须重定向到你的控制器而不是其他部分
-
好的,我已经用函数调用更新了它,它在发送 GET 请求时被调用。我也试过注释掉更新数据库代码,只留下重定向,它仍然不起作用。
标签: ajax cakephp get-request