2012-07-18 3 views
1

C'est ma première journée à m'amuser avec Symfony et drupal 8, alors excusez-moi si ma question est très évidente.Pourquoi cette sortie json Symfony sort les en-têtes

avec Drupal 7:

drupal_json_output(array('products' => array_values($products))); 
exit; 

la sortie JSON est propre:

{"products":["item_1","item_2",....]} 

Avec drupal 8:

use Symfony\Component\HttpFoundation\JsonResponse; 
// some process 
print new JsonResponse(array('products' => array_values($products))); 
exit; 

Il délivre en sortie avec les en-têtes:

HTTP/1.0 200 OK 
Cache-Control: no-cache 
Content-Type: application/json 
Date:   Wed, 18 Jul 2012 07:53:26 GMT 

{"products":["item_1","item_2",....]} 

Comment vous débarrasser de ces en-têtes?

Je suis bloqué pour lire la référence here.

Tout indice est très apprécié.

+0

imprimer nouveau JsonResp ... est pour le débogage. Utilisez la méthode 'send()' pour envoyer la sortie – Federkun

+0

Merci beaucoup. Je vais devoir lire des documents plus complets. Ref Cross: http://stackoverflow.com/questions/8623962/looking-for-symfony2-book?rq=1 – swan

+0

@swan Vous pouvez éditer ma réponse pour l'améliorer et écrire sur 'send()' – AdrienBrault

Répondre

2

Vous pouvez obtenir uniquement le "contenu" d'une réponse en appelant le $response->getContent().

Dans votre cas, vous pouvez faire

use Symfony\Component\HttpFoundation\JsonResponse; 
// some process 
$response = new JsonResponse(array('products' => array_values($products))); 
print $response->getContent(); 
exit; 

Cependant, sachez que ce serait une mauvaise pratique, car vous perdriez les en-têtes de réponse dans le processus, et ne serait pas dire par exemple, ce que le contenu -type de votre réponse est (dans ce cas: "application/json") etc ...

Je ne sais pas comment faire cela correctement avec drupal, des conseils sont appréciés.

+0

Merci beaucoup. Cela fonctionne comme prévu. – swan

Questions connexes