Тем временем я выяснил, как решить эту проблему, и, поскольку я думаю, что другие столкнутся с такой же проблемой в будущем, я отвечу на свой вопрос здесь:
В моем ActionSetup.php (или bootstrap.php, если настройка действия не разделена) мне нужно было убедиться, что действия помещаются только в стек действий, если запрос не был XmlHttpRequest.
Единственное, чего не хватало, это оператора if:
if (!$request->isXmlHttpRequest())
Все выглядит так:
/**
* Front Controller plugin to set up the action stack.
*
*/
class Project_Controller_Plugin_ActionSetup extends Zend_Controller_Plugin_Abstract
{
public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
{
if (!$request->isXmlHttpRequest())
{
$front = Zend_Controller_Front::getInstance();
if (!$front->hasPlugin('Zend_Controller_Plugin_ActionStack'))
{
$actionStack = new Zend_Controller_Plugin_ActionStack();
$front->registerPlugin($actionStack, 97);
} else
{
$actionStack = $front->getPlugin('Zend_Controller_Plugin_ActionStack');
}
$menuAction = clone ($request);
$menuAction->setActionName('menu')
->setControllerName('index');
$actionStack->pushStack($menuAction);
$userlogAction = clone ($request);
$userlogAction->setActionName('userlog')
->setControllerName('index');
$actionStack->pushStack($userlogAction);
//etc.
}
}
}