Sauver le résultat d'un $.get dans une variable JS

Fermé
Swiss Knight Messages postés 1956 Date d'inscription samedi 22 novembre 2008 Statut Membre Dernière intervention 27 juillet 2016 - 30 nov. 2015 à 02:42
 Utilisateur anonyme - 30 nov. 2015 à 09:13
Salut,

Je souhaite enregistrer le résultat d'un $.get jQuery d'une url d'un serveur cartographique dans une variable javascript mais je n'y arrive pas, c'est désespérément vide dans la console...

Voici le bout de code JS qui me pose problème, ce sera plus parlant :

var url = "localhost:8080/geoserver/layers/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=layers:macouche&maxFeatures=50&outputFormat=application%2Fjson";

var geojsonData;
$.getJSON( url, function( data ) {
geojsonData = data;
});

console.log(geojsonData);


Résultat du console.log : undefined.


Merci d'avance.⁹

2 réponses

Utilisateur anonyme
30 nov. 2015 à 08:25
Bonjour

Tu essayes d'afficher la variable avant qu'elle ne soit initialisée.
Quand tu fais un appel à $.getJSON, tu définis la fonction function( data ) mais elle n'est pas appelée immédiatement : elle ne sera appelée que plus tard, quand la requête indiquée dans l'url aura reçu sa réponse.
Et toi tu demandes à afficher geojsonData aussitôt après l'appel à $.getJSON : c'est trop tôt.
Il faut attendre la réponse à la requête.
Il tu suffit de faire l'affichage à l'intérieur de la function( data ), immédiatement après avoir fait
geojsonData = data;
. Là, tu es sûr que la variable est définie.

le père. (Puisque ce !#é|?§ de forum ne sait plus gérer les accents dans les pseudos)
1
Utilisateur anonyme
30 nov. 2015 à 09:13
+1
0
Utilisateur anonyme
30 nov. 2015 à 06:34
Salut,

si tu fait console.log(data) ???

Je ne sais pas si cela est normal mais l'url pointe sur localhost. Dans tout les case j'ajouterais à ta place le http://
0