Partage
  • Partager sur Facebook
  • Partager sur Twitter

Activité 3: Problème pour récupérer le ficier JSON

Activité 3 - Utilisez un serveur web externe

Sujet résolu
    21 avril 2017 à 16:00:09

    Bonjour, je fait l'activité 3 du cours Créez des pages web interactives avec JavaScript. Je n'arrive pas à récupérer les lien sur le serveur car à chaque fois j'ai une erreur, voici mon code.

    // Liste des liens Web à afficher. Un lien est défini par :
    // - son titre
    // - son URL
    // - son auteur (la personne qui l'a publié)
    var listeLiens = new Array();
    
    // Exécute un appel AJAX GET
    // Prend en paramètres l'URL cible 
    function ajaxGet(url)
    {
        var req = new XMLHttpRequest();
    
        req.open("GET", url);
    
        req.addEventListener("load", function () {
    
            if (req.status >= 200 && req.status < 400) {
    
                // Transforme la réponse en tableau d'objets JavaScript
                var items = JSON.parse(req.responseText);
    
                // Ajoute le résultat à un tableau
                items.forEach(function (item) {
                    listeLiens.push({
                        titre: item.titre,
                        url: item.url,
                        auteur: item.auteur
                    });
                })
            }
            else
            {
                console.error(req.status + " " + req.statusText + " " + url);
            }
    
        });
    
        req.addEventListener("error", function () {
    
            console.error("Erreur réseau avec l'URL " + url);
    
        });
    }
    
    ajaxGet("https://oc-jswebsrv.herokuapp.com/api/liens.json");
    

    A chaque fois la variable req se retrouve addEventListener error. Une idée ?


    • Partager sur Facebook
    • Partager sur Twitter
      21 avril 2017 à 16:07:49

      Salut,

      Le serveur semble avoir des problèmes. 
      Utilise https://jsonplaceholder.typicode.com/  à la place pour faire des testes.

      • Partager sur Facebook
      • Partager sur Twitter
        21 avril 2017 à 17:02:54

        Bonjour, voulez dire quoi par des problème, moi j'arrive afficher les pages. Vous êtes sur que cela vient pas de mon code car j'ai testé avec votre lien et cela fonctionne toujours pas.

        // Exécute un appel AJAX GET
        // Prend en paramètres l'URL cible 
        function ajaxGet(url)
        {
            var req = new XMLHttpRequest();
        
            req.open("GET", url);
        
            req.addEventListener("load", function () {
        
                if (req.status >= 200 && req.status < 400) {
        
                    // Transforme la réponse en tableau d'objets JavaScript
                    var items = JSON.parse(req.responseText);
        
                    // Affiche le titre de chaque film
                    items.forEach(function (item) {
        
                        console.log(item.title);
                        /*listeLiens.push({
                            titre: item.titre,
                            url: item.url,
                            auteur: item.auteur
                        });
                        */
                    })
                }
                else
                {
                    console.error(req.status + " " + req.statusText + " " + url);
                }
        
            });
        
            req.addEventListener("error", function () {
        
                console.error("Erreur réseau avec l'URL " + url);
        
            });
        }



         ajaxGet("https://jsonplaceholder.typicode.com/posts");

        Si le serveur a vrai un problème je peu pas finir l'activité car si le server est down je peu pas publier dessus !

        -
        Edité par JuJu74 21 avril 2017 à 17:03:49

        • Partager sur Facebook
        • Partager sur Twitter
          21 avril 2017 à 17:15:21

          A, Enfaîte c'est pas le serveur, mais votre lien qui n'est pas bon :

          Il n'y a pas de .json à la fin 
          https://oc-jswebsrv.herokuapp.com/api/liens.json => https://oc-jswebsrv.herokuapp.com/api/liens
          • Partager sur Facebook
          • Partager sur Twitter
            21 avril 2017 à 17:32:30

            Non toujours pas, j'avais déjà test sans le .json mais le soucis c"est que l'objet XMLHttpRequest avec la variable req est toujours null poutant j'ai pas inventé le code c'est celui du cours !
            • Partager sur Facebook
            • Partager sur Twitter
              21 avril 2017 à 17:42:39

              Rajoute req.send() à la fin de la function ajaxGet
              • Partager sur Facebook
              • Partager sur Twitter
                21 avril 2017 à 19:06:02

                Je te remercie GannoN, ça fonctionne par contre je comprends pas à quoi sert le seq.send(null), je m'était dit comme cela envoie un null il servait à rien.

                Je te remercie encore, a+.

                • Partager sur Facebook
                • Partager sur Twitter

                Activité 3: Problème pour récupérer le ficier JSON

                × 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