У меня есть это в моем файле маршрутов:CakePHP (2.4) маршруты JSON
CakePlugin::routes();
Router::mapResources('api');
Router::parseExtensions('json');
В настоящее время, если я позвоню контроллер у меня есть Api с .json как расширение до тех пор, как это HTTP GET (не отправлять) он выводит json, который является прекрасным, независимо от имени метода/функции, если он существует в моем контроллере Api.
Если я делаю сообщение, пока я могу расшифровать опубликованную JSON любую функцию/метод, который я назвал, это ошибки, говорящие, что мне не хватает xxx.ctp в app/Api/Views/json/ xxx.ctp = имя любой функции, которую я вызвал для публикации.
2 Вопросы/проблемы.
В идеале я хочу разобрать любой запрос на контроллер Api как json, но без указания расширения .json в URL-адресе.
Во-вторых, как/почему не может HTTP POST-выход json, как HTTP GET, нужно ли мне что-то еще где-то отображать?
Большое спасибо
Ваше ожидание ошибочно. Вывод должен всегда соответствовать файлу/расширению. Таким образом, вам всегда нужно расширение json для ответов JSON. И если вы используете xml, вы получаете XML, если вы не используете расширение, вы получаете HTTP. так оно и должно работать. Не то, что вы ожидаете. См. [AJAX и CakePHP] (http://www.dereuromark.de/2014/01/09/ajax-and-cakephp/). И если вы хотите только JSON, убедитесь, что все остальные ошибки (4xx) правильно. – mark