0

im totally confused right now, because i want to build up an api, but cake has a bit of a weird behaviour:

If i want to send a POST-request to let's say "/controller", it gets redirected to "/controller/index" ("index" method of "controller"), which is quite what i did expect. But, instead of a POST-request, i get a GET-request there.

(for example, i output $this->request->method(), which prints out the method of the request)

Someone who came across that before? I tried routing the "/controller" to "/controller/index" in routes.php under "Config", but that didn't work as well.

Many thanks,

Fabi.

  • 1
    Try sending the post request directly to `/controller/index` instead. The redirect probably messes it up and converts your `POST` to a `GET`. – Oldskool Jan 09 '13 at 21:15

1 Answers1

4

what you're describing isn't how cake works. A Post request to /foo is not redirected to /foo/index by any core code. Also, by default both of those urls map to the same controller action: index.

Finding the problem

You can easily identify redirect problems by temporarily putting this in your app controller::

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

This will dump a stacktrace indicating how the code is getting to the redirect method when it is called. Once you know what is responsible for redirecting /controller to /controller/index, you'll be able to focus your attention on the real problem.

Note that obviously any kind of redirect will "convert" your post request to a get request - since you can't issue a redirect and submit post data at the same time from php.

AD7six
  • 63,116
  • 12
  • 91
  • 123