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 :
Ca, ça fonctionne très bien, mon code PHP :
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); ..... } });
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é.
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))); }
Maintenant, si je passe le paramètre débug à false dans mon app_dev.php
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $kernel = new AppKernel('dev', false); //<============== false
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
Partager