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

jQuery Discussion :

Retour non interprèté dans la méthode success [AJAX]


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2020
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Mars 2020
    Messages : 62
    Par défaut Retour non interprèté dans la méthode success
    Bonjour,

    Je m'essaie par ces temps moroses à ajax/cgi.

    Tout d'abord, sachez que je n'ai pas de compétences en javascript, merci d’être indulgent !

    Par ailleurs, la méthode utilisée est GET pour envoyer les données du formulaires, tout ceci
    tourne sur un LAN, la sécurité n'est donc pas considérée.

    Alors voila, un formulaire simple dans une page html sollicite un javascript qui lui-même
    appelle un script shell cgi. Le script cgi reçoit bien les données et exécute un programme avec
    2 arguments saisis dans le formulaire. Ce script est sensé renvoyer "success" mais cette chaîne
    n'est pas comprise par le javascript script puisque la fonction formSuccess(); (voir plus bas)
    n'est jamais interprétée. Le "echo success" du script cgi apparaît bien lui, bien sur la page.

    Voici le javascript et le script shell cgi, je vous épargne le formulaire html.

    D'avance merci pour votre aide.

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    1 - formulaire html
     
    2 - script
     
    <script type="text/javascript"
    $("#lm2sstreamForm").validator().on("submit", function (event) {
        if (event.isDefaultPrevented()) {
            formError();
            submitMSG(false, "Avez vous bien complete le formulaire ?");
        } else {
            event.preventDefault();
            submitForm();
        }
    });
     
     
    function submitForm(){
        var url = $("#url").val();
        var cle = $("#cle").val();
     
        $.ajax({
            type: "GET",
            url: "http://192.168.1.38:2929/cgi-bin/test.cgi",
            dataType : 'html',
            data: "url=" + url + "&cle=" + cle,
            success : function(text, statut){
                if (text == "success"){
                    formSuccess();
                } else {
                    formError();
                    submitMSG(false,text);
                }
            }
        });
    }
     
    function formSuccess(){
        $("#lm2sstreamForm")[0].reset();
        submitMSG(true, "Lancement du programme OK !")
    }
     
    function formError(){
        $("#lm2sstreamForm").removeClass().addClass('shake animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){
            $(this).removeClass();
        });
    }
     
    function submitMSG(valid, msg){
        if(valid){
            var msgClasses = "h3 text-center tada animated text-success";
        } else {
            var msgClasses = "h3 text-center text-danger";
        }
        $("#msgSubmit").removeClass().addClass(msgClasses).text(msg);
    }
    </script>
     
    3 - script cgi 
    #!/bin/sh
     
    echo "Content-type: text/html; charset=UTF_8"
    echo "Access-Control-Allow-Origin: *"
    echo "Access-Control-Allow-Methods: GET, POST"
    echo ""
     
     
    if [ "$REQUEST_METHOD" = "GET" ]; then
     
     
        Var1=$(echo "$QUERY_STRING" | sed -n 's/^.*url=\([^&]*\).*$/\1/p')
        URL=$(echo -e $(echo "$Var1" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;'))
     
        Var2=$(echo "$QUERY_STRING" | sed -n 's/^.*cle=\([^&]*\).*$/\1/p')
        CLE=$(echo -e $(echo "$Var2" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;'))
     
        echo "URL=${URL} -- CLE=${CLE}" > /tmp/myprogramm.trace
     
        /usr/local/packages/myprogramm ${URL} ${CLE} >/dev/null 2>/dev/null &
        echo $! > /tmp/myprogramm.pid
     
        echo "success"    # ceci s'affiche bien sur la page du formulaire une fois l'ensemble éxécuté.
     
    else
     
        echo "error"
     
    fi
     
    exit 0

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    Bonjour,

    Si le callback d'ajax success n'est pas interprété, alors probablement que la variable text est différente de "success"' ou bien qu'il y'a une erreur dans ton script cgi.

    Pour t'assurer ajoute le callback error d'ajax afin d'identifier l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    success : function(text, statut){
       console.log("Retour d'ajax :"+text);//voir si le text=="success" ou pas
       .....          
    },
    error:function(erreur){
       alert("Erreur ajax :"+erreur);
    }

  3. #3
    Membre confirmé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2020
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Mars 2020
    Messages : 62
    Par défaut j'essaie aujourd'hui !
    Merci pour ta réponse, j'essaie ce jour et reviens sur le forum.

  4. #4
    Membre confirmé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2020
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Mars 2020
    Messages : 62
    Par défaut pas de changement
    Bonjour,

    Malgré les modification suggérées, aucun message d'erreur, je récupère toujours le "success" du "echo success" envoyé
    par le cgi mais aucune interprétation par le script ajax qui devrait lancer la fonction formsuccess() ...

  5. #5
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    Mais si tu fais le console.log dans le success pour voir le contenu du "text", tu vois quoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    success : function(text, statut){
       console.log("Retour d'ajax :"+text);//ça donne quoi cette ligne dans la console ?          
    }
    Le script cgi ne devrait pas avoir d'autres echo appart ceux de "success" et "error".

  6. #6
    Membre confirmé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2020
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Mars 2020
    Messages : 62
    Par défaut aprés tests
    Le script n'a effectivement que ces deux echos, "success" et "error".

    Avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    success : function(text, statut){
       console.log("Retour d'ajax :"+text);//ça donne quoi cette ligne dans la console ?          
    }
    Je n'obtiens rien.

    avec:
    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
    17
    18
    19
    20
    21
     
    function submitForm1(){
        // Initiate Variables With Form Content
        var selection = $("#selection").val();
        var cle1 = $("#cle1").val();
     
        $.ajax({
            type: "GET",
            url: "http://192.168.1.38:2929/cgi-bin/start.cgi",
            dataType : 'text',
            data: "selection=" + selection + "&cle1=" + cle1,
             success : function(text){
                if (text == "success"){
                    formSuccess();
                } else {
                    formError();
                    submitMSG(false,text);
                }
            }
        });
    }
    J'obtiens: "success" , mais la fonction formSuccess(); n'est pas exécutée. Je sèche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/09/2009, 12h03
  2. PHP non interprété dans un fichier XML
    Par Peyothe dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 03/06/2009, 20h43
  3. [Thread] appel de méthodes non-synchronized dans une méthode synchronized
    Par dr23fr dans le forum Concurrence et multi-thread
    Réponses: 1
    Dernier message: 24/06/2008, 22h47
  4. HTML non interprété dans lien
    Par kangaxx dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/04/2008, 09h51
  5. [phpBB] Code PHP non interprété dans un thème subsilver
    Par killpilot dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 24/06/2007, 11h42

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