Я считаю, что по умолчанию Cake не запускает запросы Ajax через основной макет, поэтому там не должно быть МОСТ html. Если нет, вы можете принудительно указать, какой макет можно использовать, специально вызвав метод рендеринга для контроллера и установив макет в «ajax». Справка: http://book.cakephp.org/view/57/Controller-Methods#render-428
У меня также были проблемы с включенной отладкой, поскольку все операторы SQL записывались в таблицу HTML в нижней части запросов AJAX и вызывали некоторые серьезные проблемы с синтаксическим анализом, когда тип данных должен был быть AJAX. Это, вероятно, хак, но я сделал следующее, чтобы обойти это.
В главном AppController в beforeFilter () я добавил следующее (убедитесь, что все методы beforeFilter вашего другого контроллера вызывают родительский метод):
if ($this->RequestHandler->isAjax()) {
$db =& ConnectionManager::getDataSource('default');
$db->fullDebug = false;
}
В торт / libs / model / datasources / dbo_source.php примерно в строке 2074 в моей версии я изменил
if (Configure::read() > 1) {
$this->showLog();
}
до
if (Configure::read() > 1 && $this->fullDebug) {
$this->showLog();
}