2016-07-27 54 views
2

我有一個RESTful Zend動作,它應該發回給我一個json編碼的對象,但在響應中,我在身體中設置的任何東西都會被複制。Zend響應setBody複製了我的數據

我的代碼如下所示:

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

我剛剛發現這個問題,解決方法:Zend response application/json utf-8

它的工作原理是否如預期般的,而不是使用$responsesetBody一起,我用$this->_helper->json->sendJson($output);

這只是一個解決方法,並且想了解setBody有什麼問題,所以我不會接受這個「答案」...