Bonsoir les amis,

Je travaille en ce moment ajax avec Symfony 4 et Jquery

J'ai une méthode que je veux exécuter, elle se passe très bien quand je la fait en PHP simple et php me renvoie bien un tableau JSON.

Mais quand j'ajoute la couche Ajax, ajax me retourne (à la console) du code Html au lieu de me retourner un tableau JSON comme je le voudrait.

Pourquoi me fait-il ça et comment y remédier.

voici mon code

JS

        $.ajax({
            url: "{{path('new_notification_abonnement')}}", //url,
            type: 'POST',
            data: {
                    'type': $(this).data('type_fruit'),
                    'id_objet': $(this).data('id_objet')
                },
            datype: JSON,
            success: 
                    function(data){
                        console.log('ito n reponse', data);
                        //$('.notification-badge').html(data.notification);
                       // var id_objet = data.id_objet
                       // var abonnes = data.abonnes

                        // abonnes.forEach(id_abonne){
                        //     var data = { 'id_objet': id_objet, 'id_abonne': id_abonne},

                        //     socket.emit('send_notification', data); 
                        // }

                    }
        }); 

php

return new JsonResponse(['abonnes' => $idUserAbonneFormations]);

3 réponses


Tu as du très certainement te tromper :

datype: JSON,

Ici déjà une erreur de frappe essaye de corrigé ce petit bug et revoie après.

tu as certainement du te tromper sur la clé du type de donnée comme la mentionné @Azero_Rs:

dataType: 'JSON' plutôt que datype: JSON

si cela ne résout pas le problème je pense que tu devrais essayer faire un echo new JsonResponse(...); exit(); plutôt que de retourner le résultat comme ceci return new JsonResponse(...),

; )

Bonjour.
Ce n'est pas non plus datatype: JSON ni dataType: JSON mais dataType: 'JSON'.