IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

[Symfony 2] Paramètres POST non transmis via Ajax


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Par défaut [Symfony 2] Paramètres POST non transmis via Ajax
    Salut tout le monde !

    Depuis que j'ai déployé mon site j'arrête pas d'avoir des erreurs partout, ça n'en finit pas... Mais là mon problème est vraiment étrange.

    En fait toutes les données que j’envoie via Ajax en type POST ont tout simplement disparues du côté de mon contrôleur, que ce soit avec l'objet Request : $request->request->all(), tout simplement $request->get('attribut') ou même $_POST, c'est toujours vide.

    Je suis pourtant maintenant assez familier avec Ajax vu que j'en fous à peu près partout (trop :p) et en local j'ai eu aucun souci ...

    Là où ça devient bizarre ici c'est que si je change tout simplement type : "POST" par "GET", les paramètres arrivent bien et en plus le POST marche très bien dans la partie publique de mon site mais pas sur mon espace admin (tout url derrière /admin).

    Mon appel ajax, tout ce qu'il y a de plus classique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var form_data = $('#item_form').serialize();
    $.ajax({
            type: "POST",
            url: chemin,
            data: form_data,
            success: function(data){
                alert(data);
            }
        });
    Le debugger chrome m'indique que les données sont bien envoyées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ryd_rentalbundle_avis[nom]:Denis Hukorn
    ryd_rentalbundle_avis[date]:22/04/2014
    ryd_rentalbundle_avis[pays]:GB
    ryd_rentalbundle_avis[location]:10
    ryd_rentalbundle_avis[note]:9
    ryd_rentalbundle_avis[commentaire]:blablabla
    ryd_rentalbundle_avis[_token]:tLk74wSQTGt6hUgubN3JU6sds5vtkQ0U_G5dktECoGA
    page:1
    Et puis dans le contrôleur si j'affiche les données reçues j'ai seulement array(0) {} ou NULL lors d'un get.
    Peut être que c'est lié à mon serveur (je suis chez OVH en mutualisé PRO) ou à la sécurité symfony.

    Si quelqu'un a déjà eu la même erreur ou aurait une idée d'où ça peut provenir ... ça m'éviterait de passer mes formulaires en GET et avoir des URL dégueulasses d' 1km de long et de rajouter 10 à 15 contrôleurs ...

    Merci pour votre aide

  2. #2
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    peut-être un restriction dans le .htaccess de ton répertoire admin

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Par défaut
    Salut,
    Il n'y a pas de répertoire admin c'est juste la sécurité du framework qui gère l'accès aux url /admin/*

  4. #4
    Invité
    Invité(e)
    Par défaut


    Juste une piste en l'air : tu dis qu'en local ça fonctionne bien ; est-ce que tu ne serais pas sur Windows en local par hasard ? Si tel est le cas, souviens-toi que Windows est case insensitive, alors que Linux (chez OVH) ne l'est pas... Est-ce que ce ne serait pas un problème de nommage des paramètres que tu cherches à récupérer du côté PHP ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Par défaut Toujours pas de solution
    Je n'ai toujours pas trouvé pourquoi ça ne fonctionne pas ...
    Je pense effectivement à une erreur au niveau du .htaccess.
    Ce qui est étrange c'est que pendant un moment tout fonctionnait mais seulement avec Mozilla, pas sur Chrome, et après modifié du code (qui n'avait rien à voir avec mon problème) et remis mon cache Symfony à jour, l'erreur est revenue.
    Je désespère

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 22
    Par défaut
    Du nouveau sur la question ?
    Car je suis dans le même cas (Symfony2) : j'essaye de faire un Ajax en POST avec data en JSON, et un var_dump($request) m'indique un Post array vide !
    Si je passe en GET en rajoutant "?var1=value&var2=…", ça marche !
    Et je viens de me rendre compte que sur symfony 1.4, j'ai du avoir le même problème, car en regardant mon code, j'ai bien tout remis en GET.
    Donc le pb ne doit pas être nouveau ou pas lié à symfony ?
    Après une soirée de recherches et tests vains, la seule piste qui me reste serait liée à un réglage de sécurité dans Symfony ?!?!
    Sinon, je suis sur MAMP en dev et chez OVH en Prod.
    Voilà, si quelqu'un à une idée ou un lien, je suis preneur !
    Merci !

Discussions similaires

  1. [AJAX] Formulaire non transmis avec ajax
    Par gastoncs dans le forum jQuery
    Réponses: 1
    Dernier message: 15/06/2013, 13h09
  2. Réponses: 14
    Dernier message: 17/08/2009, 17h18
  3. [AJAX] [AJAX/PHP] récupération de paramètres POST
    Par TheLostMind dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/12/2008, 08h08
  4. Non exécution du script js dans page inclue via ajax
    Par clara1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/05/2008, 11h10
  5. [AJAX] tinyMce et la methode post via ajax
    Par karimphp dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/04/2008, 15h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo