0

我现在完全糊涂了,因为我想建立一个 api,但是 cake 有一些奇怪的行为:

如果我想发送一个 POST 请求让我们说“/controller”,它会被重定向到“/controller/index”(“controller”的“index”方法),这正是我所期望的。但是,我收到的不是 POST 请求,而是 GET 请求。

(比如我输出$this->request->method(),打印出请求的方法)

以前有人遇到过吗?我尝试在“Config”下的 routes.php 中将“/controller”路由到“/controller/index”,但效果不佳。

非常感谢,

法比。

4

1 回答 1

4

你所描述的不是蛋糕的工作原理。/foo任何核心代码都不会将Post 请求重定向到/foo/index。此外,默认情况下,这两个 url 都映射到相同的控制器操作:index.html。

发现问题

您可以通过暂时将其放入您的应用控制器中轻松识别重定向问题::

function redirect($url) {
    debug($url);
    debug(Debugger::trace());
    die;
}

这将转储一个堆栈跟踪,指示代码在调用时如何到达重定向方法。一旦您知道是什么导致重定向/controller/controller/index,您就可以将注意力集中在真正的问题上。

请注意,显然任何类型的重定向都会将您的 post 请求“转换”为 get 请求 - 因为您不能同时从 php.ini 发出重定向和提交 post 数据。

于 2013-01-09T21:33:17.400 回答