EDIT : Problème résolu entre temps, une faute de frappe était dans du code propre à l'environnement de débugage.


Bonjour à tous,

Je rencontre actuellement un problème lorsque je veux retourner une réponse lors des appels AJAX.

Le scénario est tout simple, du code JS qui via une requête AJAX exécute une méthode d'un controller, le controller retourne du JSON.


code js :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$.ajax ({
		url: Routing.generate('.....') ,
		type: 'POST',
		data: 'starred='+isStarred, 
		error: function(data) {  
			alert('Un problème est survenu lors de l\'éxécution.');
			..... 
		},				
		success: function(data, textStatus, xhr) {
			alert(data);
			var res = jQuery.parseJSON(data);
			console.log(xhr.status);
			console.log(res);
			.....
		}	
	});
Ca, ça fonctionne très bien, mon code PHP :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public function monAction()    {
      return new Response(json_encode(array('message' => 'ERROR', 'code' => 404)));
}
Dans mon environnement de DEV avec le paramètre débug à true, on passe bien dans le callback success et j'ai bien un alert avec le JSON encodé.

Maintenant, si je passe le paramètre débug à false dans mon app_dev.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$kernel = new AppKernel('dev', false); //<============== false
On passe toujours dans le callback success sauf que data est égal à null. Le alert(data) affiche un alert vide et je n'ai pas touché au reste du code.

Je rencontre le même problème, si je fais exit("data") ou die("data"), si le paramètre de débug est à true, le message s'affiche dans le callback success, si le paramètre est à false, j'ai un alert vide.


Si quelqu'un a une explication à ce problème, il me rendrait un grand service.

PS : j'ai déjà vidé le cache

Merci d'avance