Zend响应setBody复制我的数据

时间:2016-07-27 05:55:44

标签: php json zend-framework

我有一个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));

1 个答案:

答案 0 :(得分:0)

我刚从这个问题找到了解决方法:Zend response application/json utf-8

如果我使用$response而不是setBody而不是$this->_helper->json->sendJson($output);,那么它会按预期工作。

这只是一种解决方法,我想了解setBody的问题是什么,所以我不接受这个"回答" ...