cakePHP: / перенаправляет на /index, но отправляет запрос на получение вместо почтового запроса

я сейчас в полном замешательстве, потому что я хочу создать API, но Cake ведет себя немного странно:

Если я хочу отправить POST-запрос, скажем, «/controller», он будет перенаправлен на «/controller/index» («индексный» метод «контроллера»), чего я и ожидал. Но вместо POST-запроса я получаю там GET-запрос.

(например, я вывожу $this->request->method(), который выводит метод запроса)

Кто-то уже сталкивался с этим? Я попытался перенаправить «/controller» в «/controller/index» в route.php в разделе «Config», но это тоже не сработало.

Большое спасибо,

Фаби.


person Fabian Frank    schedule 09.01.2013    source источник
comment
Попробуйте вместо этого отправить запрос на публикацию напрямую /controller/index. Перенаправление, вероятно, испортит его и преобразует ваш POST в GET.   -  person Oldskool    schedule 10.01.2013


Ответы (1)


то, что вы описываете, не то, как работает торт. Запрос Post на /foo не перенаправляется на /foo/index никаким основным кодом. Кроме того, по умолчанию оба этих URL-адреса сопоставляются с одним и тем же действием контроллера: index.

Поиск проблемы

Вы можете легко выявить проблемы перенаправления, временно поместив это в свой контроллер приложения:

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

Это выведет трассировку стека, указывающую, как код переходит к методу перенаправления при его вызове. Как только вы узнаете, что отвечает за перенаправление /controller на /controller/index, вы сможете сосредоточить свое внимание на реальной проблеме.

Обратите внимание, что, очевидно, любой вид перенаправления «преобразует» ваш почтовый запрос в запрос на получение, поскольку вы не можете одновременно выполнять перенаправление и отправлять данные сообщения из php.

person AD7six    schedule 09.01.2013
comment
Спасибо, совсем забыл! - person Fabian Frank; 10.01.2013