проблема json (загрузчик ajax Valuems с фреймворком Zend)

Я использую загрузчик ajax и Zend Framework.

Проблема в том, что я использую ответ json для onSubmit. С $this->getHelper('Json')->sendJson($data); я получаю только диалог сохранения.

Проблема в том, что загрузчик ожидает, что каждый ответ будет «text/html», но помощник json отправляет «application/json» как mimetype.

С обычным ответом все работает нормально, но мне нужно отправить некоторую информацию обратно в скрипт.

Итак, как я могу сказать Zend, что он должен отправлять jsondata с MIME-типом "text/html"?


person user63371    schedule 21.06.2009    source источник


Ответы (2)


Вы можете повлиять на ответ, используя объект ответа. Изнутри вашего контроллера:

$content = Zend_Json::encode(array('Foo' => 'Nice', 'Bar' => 'Vice'));
$this->getResponse()
     ->setHeader('Content-Type', 'text/html')
     ->setBody($content)
     ->sendResponse();
exit();
person karim79    schedule 21.06.2009
comment
В нем не используется помощник действия sendJson(), но для этого метода нет никаких параметров. Используйте Zend_Json::encode() для кодирования ваших данных и отправки их самостоятельно с помощью этого метода. - person Kekoa; 22.06.2009
comment
Спасибо Кекоа, отметили и включили. - person karim79; 22.06.2009
comment
чтобы вывести действительный код json, вы должны изменить последнюю строку на: ->setBody($content) и добавить: ->sendResponse(); exit(); иначе Zend окружит данные json вашим стилем по умолчанию. - person user63371; 25.06.2009
comment
@axel.klein - я отредактировал ответ на основе вашего комментария. Спасибо, и извините, я забыл включить бит sendResponse, я обычно получаю ответ в переменную перед выводом. - person karim79; 26.06.2009

Еще один вариант

echo Zend_Json::encode(array('result' => true));
exit;
person Pavel    schedule 29.08.2010