2016-07-27 3 views
2

私はjsonでエンコードされたオブジェクトを送り返すはずのRESTful Zendアクションを持っていますが、ボディに設定したものは何でも複製されます。Zend response setBodyは私のデータを複製します

public function blablaAction() { 
     $this->_helper->viewRenderer->setNoRender(); 
     $response = $this->getResponse(); 
     [...] 
     $response->setBody('aaaaaaaa' . json_encode($output) . 'aaaaaaaa'); 
     $response->sendResponse(); 
    } 

をそして、私はレスポンスボディを見れば、私が見ることができます:

私のコードは次のようになります

 aaaaaaaaXXXXXXXXXXXXXXaaaaaaaaaaaaaaaaXXXXXXXXXXXXXXaaaaaaaa 

XXXXXXXXXXXXXX JSONエンコードされたデータです)。

なぜですか?

PS:問題がjsonエンコーディングに由来していないことを確認するためにaaaaaaaを追加しました。私はちょうど期待通りに動作するときに$response->setBody(json_encode($output));を持っています。

答えて

0

私はこの質問から回避策を見つけた:Zend response application/json utf-8

予想通りそれは私が$this->_helper->json->sendJson($output);を使用し、代わりにsetBodyとともに$responseを使用しての、場合に動作します。

これは回避策に過ぎず、setBodyの問題を理解したいので、私はこの「回答」を受け入れません...

関連する問題