Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème Requête ajax

Requête ajax ne fonctionnant pas sur les navigateurs

    19 janvier 2017 à 5:28:04

    Bonjour, j'ai crée un bouton qui fait appel à une requête ajax :

    Code HTML :

    <input id="monBouton" type="button" onClick="$();" value="Practice"/>

    Code Jquery :

    $("#monBouton").click(function(){	
        var jqxhr = $.ajax( adresseBDD+"maRequest.php" )
      .done(function() {
        alert( "success" );
      })
      .fail(function() {
        alert( "error" );
      })
      .always(function() {
        alert( "complete" );
      });
    )};
    Quand je teste mon code dans le XDK j'obtiens : success puis complete.


    Quand je teste mon code dans le navigateur Firefox 50.1.0 ou chrome Version 55.0.2883.87 m, j'obtiens : error puis complete.

    Quand je teste mon code dans le navigateur Internet Explorer 11, j'obtiens : success puis complete si je clique sur le bouton "Autoriser le contenu bloqué" après l'affichage de " Internet Explorer a restreint l'exécution des scripts ou des contrôles ActiveX sur cette page Web."

    Quand je teste mon code dans le navigateur Edge, j'obtiens rien du tout.

    Pourriez-vous m'expliquer comment obtenir succes et complete directement sur tous les navigateurs, svp?

    Merci d'avance de votre aide.

    Cordialement,

    Arsène

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      19 janvier 2017 à 20:37:05

      onClick="$();", ça fait un peu satanique, nan ?

      Si adresseBDD pointe vers un autre site, il se peut que tu soit victime d'un truc appelé " Cross Domain ". Ce sujet StackOverflow engage à utiliser un machin appelé " JSONP ".

      Je n'ai jamais réussi à faire fonctionner ce truc, <glados> bonne chaaannnce </glados> !

      • Partager sur Facebook
      • Partager sur Twitter
        19 janvier 2017 à 21:46:27

        Novax a écrit:

        onClick="$();", ça fait un peu satanique, nan ?

        Surtout sa sert à quoi ???, tu crée déja un event sur ton tag ...
        Plein de mystère se code
        • Partager sur Facebook
        • Partager sur Twitter
        Les gens qu'on interroge, pourvu qu'on les interroge bien, trouvent d'eux-mêmes les bonnes réponses.
        Anonyme
          19 janvier 2017 à 21:52:48

          Surtout : lequel est exécuté !?

          • Partager sur Facebook
          • Partager sur Twitter
            19 janvier 2017 à 22:01:42

            Il a du trouvé sa quelque part :), surtout que sa fait absolument rien, après je connait pas jquery, si ya un expert de cette m dans le coin, qu'il éclaire nos lanternes
            • Partager sur Facebook
            • Partager sur Twitter
            Les gens qu'on interroge, pourvu qu'on les interroge bien, trouvent d'eux-mêmes les bonnes réponses.
            Anonyme
              19 janvier 2017 à 22:09:21

              Il a dû trouver ça quelque part :), surtout que ça fait absolument rien, après je connais pas jquery...

              La même faute... Partout...

              • Partager sur Facebook
              • Partager sur Twitter
                19 janvier 2017 à 22:13:16

                Donc j'avais bien compris, je te remercie de m'avoir ouvert les yeux Novax, tu as illuminé ma soirée et changé à tous jamais ma vision de la vie, merci :)
                • Partager sur Facebook
                • Partager sur Twitter
                Les gens qu'on interroge, pourvu qu'on les interroge bien, trouvent d'eux-mêmes les bonnes réponses.
                  21 janvier 2017 à 6:30:09

                  Excusez-moi, j'aurai du faire plus court. J'utilise jquery-3.1.1 et j'ai un bouton
                  <input id="monBouton" type="button" onClick="$();"/>

                  Je voudrais me connecter à ma base de données en y cliquant dessus :
                  $("#monBouton").click(function(){	
                      var jqxhr = $.ajax( "http://www.maBDD.maRequete.php" )
                    .done(function() {
                      alert( "success" );
                    })
                  )};
                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 janvier 2017 à 8:56:45

                    Salut,

                    Tu te trompes complètement au niveau de la syntaxe de Jquery. En effet une fois que tu as déclaré ton évènement $("#monBouton").click c'est inutile et faux de remettre onClick="$();" dans ton HTML. Jquery gère le bind d'évènement pour toi.

                    Pour ta requête Ajax je te recommande aussi d'utiliser les fonctions $.post et $.get pour la plupart de tes appels. Ca sera plus lisible et plus rapide à écrire.

                    Encore une fois la doc officiel est ton ami : https://api.jquery.com/jquery.post/ -- https://api.jquery.com/click/ 

                    -
                    Edité par ViLar 21 janvier 2017 à 8:57:02

                    • Partager sur Facebook
                    • Partager sur Twitter
                      21 janvier 2017 à 10:55:09

                      Merci beaucoup, j'ai supprimé le onClick et effectivement il était inutile, mais ne change rien au problème. J'ai copié le code de l'adresse :

                      https://api.jquery.com/jquery.post/

                      var jqxhr = $.post(  "maRequete.php", function() {
                        alert( "success" );
                      })
                        .done(function() {
                          alert( "second success" );
                        })
                        .fail(function() {
                          alert( "error" );
                        })
                        .always(function() {
                          alert( "finished" );
                        });

                      Ce que je comprends pas, c'est que ça fonctionne dans le XDK d'intel mais pas sur les navigateurs!

                      • Partager sur Facebook
                      • Partager sur Twitter
                        21 janvier 2017 à 11:38:57

                        L'appel Ajax se personnalise en fonction de ce que ton code PHP exécute derrière. Le dev qui copie-colle toute la journée c'est qu'une méchante légende urbaine. :p

                        Essaye de trouver le code d'erreur que tu as lorsque tu exécutes ton appel hors du XDK. J'avoue ne jamais l'avoir utilisé et je sais pas ce qu'il apporte réellement...
                        Si ca te dérange pas ou que le code d'erreur est vraiment inutile avoir le script PHP exécuté serait super utile pour t'aider aussi. 

                        -
                        Edité par ViLar 21 janvier 2017 à 11:41:03

                        • Partager sur Facebook
                        • Partager sur Twitter
                          21 janvier 2017 à 11:54:25

                          Merci beaucoup, j'avais pas pensé à me servir de Firebug.

                          J'ai la console qui me dit ceci :

                          Blocage d’une requête multi-origines (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur http://www.monSite.fr/maRequete.php. Raison : l’en-tête CORS « Access-Control-Allow-Origin » est manquant.

                          Me reste plus qu'à trouver comment résoudre ce problème.

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Anonyme
                            21 janvier 2017 à 13:17:22

                            Blocage d’une requête multi-origines ( Cross-Origin Request ) [...]

                            Ben ça, personne ne l'avait vu venir hein ! Ah si : moi je l'avais vu venir...

                            Jack O'Neill, Stargate

                            -
                            Edité par Anonyme 21 janvier 2017 à 13:18:07

                            • Partager sur Facebook
                            • Partager sur Twitter
                              21 janvier 2017 à 15:16:28

                              Merci Novax pour cette aide précieuse. La réponse était bien contenu dans le lien Ce sujet StackOverflow. J'ai copié la ligne header("Access-Control-Allow-Origin: *"); que j'ai insérer en haut dans mon fichier PHP.

                              Ça marche bien sur tous les navigateurs sauf pour Internet explorer 11 maintenant. Il doit y avoir une combine pour que ça marche sur ce navigateur aussi.

                              -
                              Edité par ArseneAsedrith 21 janvier 2017 à 15:18:37

                              • Partager sur Facebook
                              • Partager sur Twitter

                              Problème Requête ajax

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown