我有一个RESTful Zend动作,它应该给我发回一个json编码对象,但在响应中,我在身体中设置的任何内容都会被重复。
我的代码如下所示:
public function blablaAction() {
$this->_helper->viewRenderer->setNoRender();
$response = $this->getResponse();
[...]
$response->setBody('aaaaaaaa' . json_encode($output) . 'aaaaaaaa');
$response->sendResponse();
}
如果我看一下响应主体,我可以看到:
aaaaaaaaXXXXXXXXXXXXXXaaaaaaaaaaaaaaaaXXXXXXXXXXXXXXaaaaaaaa
(XXXXXXXXXXXXXX
是json编码数据。)
为什么呢?
PS:我添加aaaaaaa
只是为了确保问题不是来自json编码。当它最终按预期工作时,我将只有$response->setBody(json_encode($output));
。
答案 0 :(得分:0)
我刚从这个问题找到了解决方法:Zend response application/json utf-8
如果我使用$response
而不是setBody
而不是$this->_helper->json->sendJson($output);
,那么它会按预期工作。
这只是一种解决方法,我想了解setBody
的问题是什么,所以我不接受这个"回答" ...