2016-07-27 4 views
2

Ich habe eine RESTful Zend-Aktion, die mir ein json-codiertes Objekt zurücksenden soll, aber in der Antwort wird alles, was ich im Körper gesetzt habe, dupliziert.Zend Antwort setBody dupliziert meine Daten

Mein Code sieht wie folgt aus:

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

Und wenn ich an der Reaktion Körper aussehen, kann ich sehen:

 aaaaaaaaXXXXXXXXXXXXXXaaaaaaaaaaaaaaaaXXXXXXXXXXXXXXaaaaaaaa 

(XXXXXXXXXXXXXX die json codierten Daten ist).

Warum?

PS: Ich fügte die aaaaaaa nur um sicherzustellen, dass das Problem nicht von der JSON-Codierung kam. Ich werde nur $response->setBody(json_encode($output)); haben, wenn es endlich wie erwartet funktioniert.

Antwort

0

Ich fand nur eine Abhilfe von dieser Frage: Zend response application/json utf-8

es, als ob anstelle der Verwendung $response zusammen mit setBody, verwende ich $this->_helper->json->sendJson($output); erwartet funktioniert.

Dies ist nur eine Abhilfe und möchte verstehen, was ist das Problem mit setBody, also werde ich diese „Antwort“ nicht akzeptieren ...