обычно в xhr-действии я использую этот код
$this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $response = $this->getResponse(); $response->setHeader('Content-type', 'application/json', true); return $response->setBody(Zend_Json::encode($data));
Мне интересно, нужна ли такая кодировка utf-8
$response->setHeader('Content-type', 'application/json;charset=UTF-8', true);
Это было бы хорошей практикой. Если вы этого не сделаете, вы не увидите никаких проблем. Это зависит от того, какие данные вы отправляете.
существует гораздо более короткий способ делать то, что вы делаете (отключает макеты и устанавливает правильные заголовки):
$this->_helper->json->sendJson($data);
Вам лучше использовать contextswitch / ajaxcontext . См. Пример в первом ответе.