Bonsoir tout le monde je suis actuellement le parcours de développeur web junior, j'ai validé mes 2 premiers projets.
Arrivé au projet 3 je dois concevoir une carte interactive de location de vélos avec comme contrainte technique que le Js soit orienté objet.
Pour récupérer les informations des stations de vélos que je vais intégrer sur ma carte j'utilise l'API de Jcdecaux, je n'arrive pas à les récupérer j'ai une réponse null.
Je sollicite donc votre aide.
Voici mon objet Ajax :
Ainsi que mon fichier JcdecauxObjet
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 let objetAjax = { url: null, methode: 'GET', request: function(callback) { if (this.url == null) { console.error('L\'url n\'est pas défini') return; } let request = new XMLHttpRequest(); request.open(this.methode, this.url); request.addEventListener('error', function() { console.error('Erreur réseau'); }); request.addEventListener('load', function () { if (request.status >= 200 && request.status <= 400) { if (callback) request.responseText; } else console.error(request.status + ' ' + request.statusText); }); request.send(null); } };
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 let JCDecauxApi = { key: null, contract: null, ajax: Object.create( objetAjax ), response: null, request: function() { if( this.key == null ) { console.error( 'JCDecaux API : la clé n\'est pas bonne ou non défini ' ); return; } if( this.contract == null ) { console.error( 'JCDecaux contract n\'est pas défini.' ); return; } this.ajax.url = 'https://api.jcdecaux.com/vls/v1/stations?contract=' + this.contract + '&apiKey=' + this.key; this.ajax.request( this.setResponse ); }, setResponse: function( response ) { this.response = JSON.parse( response ); console.log(this.response); // ici ça fonctionne } }; decauxApi = Object.create( JCDecauxApi ); decauxApi.key = '6a44c41c86a1dxxxxxxxxxxxxx'; decauxApi.contract = 'lyon'; decauxApi.request(); console.log( decauxApi.response );
Partager