С самого начала лучшей практикой, чтобы Zend отвечал на запросы ajax без полного макета, была проверка переменной, доступной через заголовки запросов. Согласно документации многие клиентские библиотеки, включая jQuery, Prototype, Yahoo UI, MockiKit, отправляют правильный заголовок, чтобы это работало.
if($this->_request->isXmlHttpRequest())
{
//The request was made with via ajax
}
Однако современная практика и то, что вы, вероятно, ищете, теперь должны использовать одного из двух новых помощников:
Что делает процесс значительно более элегантным.
class CommentController extends Zend_Controller_Action
{
public function init()
{
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('view', 'html')
->initContext();
}
public function viewAction()
{
// Pull a single comment to view.
// When AjaxContext detected, uses the comment/view.ajax.phtml
// view script.
}
Обратите внимание: Этот современный подход требует , что вы запрашиваете формат для запуска контекста. Это не очень очевидно в документации и несколько сбивает с толку, когда вы получаете странные результаты в браузере.
/url/path?format=html
Надеюсь, мы найдем обходной путь. Ознакомьтесь с полной документацией для получения более подробной информации.