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 :

Récuperer un flux Json online avec Ajax


Sujet :

jQuery

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2013
    Messages : 19
    Par défaut Récuperer un flux Json online avec Ajax
    Bonjour,

    En effet, je souhaite récuperer un cours de la bourse en format json. L'url présent dans l'ajax renvoie : "{"to": "EUR", "rate": 0.76934913100000002, "from": "USD"}".

    le soucis est que cette partie" $('#teste').text(reponse.to) " ne rentre pas en action.
    Donc plusieur hypothese :
    - ce bout de code ne fonctionne pas
    - la fonction $.ajax n'arrive pas au success donc l'url est faux
    - j'utilise mal la fonction $.ajax
    - ou autre ...

    Je ne comprends pas


    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $(document).ready(function() {
    	$('#test').click( function(){
    		 $("#test").text('Clique prie en compte');
    		$.ajax({
    			url: 'http://rate-exchange.appspot.com/currency?from=USD&to=EUR',
    			type: 'GET',
    			dataType: 'json',
    			success : function(reponse){
    				$('#teste').text(reponse.to);
    			}
    		});
    		return false;
    	});
    });

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <html>
      <head>
        <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    	<script src="jquery-2.js"></script>
    </head>
      <body>
    	<div id="test">
    		<span>Cliquez-moi pour afficher le graph</span>
    		<span id="teste"></span>
    	</div>
      </body>
    </html>

    Merci pour tout!

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Merci pour tout!
    De rien !

    Au fait, tu as peut-être une question à poser ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2013
    Messages : 19
    Par défaut
    C'est pour savoir si vous suivez lol :p

    J'ai modifié le 1er poste, la problematique si dessous, ce trouve aussi au-dessus

    Bref le soucis est que cette partie" $('#teste').text(reponse.to) " ne rentre pas en action.
    Donc plusieur hypothese :
    - ce bout de code ne fonctionne pas
    - la fonction $.ajax n'arrive pas au success donc l'url est faux
    - j'utilise mal la fonction $.ajax
    - ou autre ...

    Je ne comprends pas

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Avec $.ajax() tu vas être confronté à la Same Origin Policy.
    Utilise $.getJSON() pour contourner cela.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2013
    Messages : 19
    Par défaut
    En fait, j'ai déjà essayé et dès que j'utilise le $.getJSON, le reste de la page plante.
    Il y a un graphique qui est sensé s'afficher plus bas et le code " $("#test").text('Clique prie en compte')" ne fonctionne plus.
    Donc j'avais abandonné cette solution.

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $(document).ready(function() {
    	$('#test').click( function(){
    		$("#test").text('Clique prie en compte');
    		$.getJSON('http://rate-exchange.appspot.com/currency?from=USD&to=EUR',function(reponse){
    			$:('#teste').text(reponse.to);	
    				}
    	return false;
    	});
    });

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $:('#teste').text(reponse.to);
    Tu ne vois rien d'anormal ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2013
    Messages : 19
    Par défaut
    ah Oui erreur de copier/coller. Pourquoi toute la page bug, tout simplement problème de parenthèse et intervalle. Donc maintenant ça fait exactement comme la fonction $.ajax. Le code $('#teste').text(reponse.to); ne fonctionne pas. Pour faire plus simple je mets alert(reponse.to); mais cela ne fonctionne toujours pas.

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $(document).ready(function() {
    		$('#test').click( function(){
    			$("#test").text('Cliquer prie en compte');
    			$.getJSON('http://rate-exchange.appspot.com/currency?from=USD&to=EUR',function(reponse){
    				alert(reponse.to);	
    			});
     
    		});
    return false;
    });

  8. #8
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2013
    Messages : 19
    Par défaut
    Après quelques recherches sur Same Origin Policy, il faut utiliser du JSONP au lieux de JSON. Comme l'url ne comporte pas le même domaine, on a des problème de sécurité. JSONP permet d'encapsuler le JSON, ainsi de contourner le "Same Origin Policy".

    Pour plus de détaille (en anglais): http://www.codeproject.com/Articles/...-Origin-Policy
    avec des exemples simples : http://fcargoet.evolix.net/2009/02/jsonp-avec-jquery/

    Au final voici, mon code fonctionnel :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $(document).ready(function() {
    		$('#test').click( function(){
    			$("#test").text('Cliquer prie en compte');
    				$.ajax({
    					url : 'http://rate-exchange.appspot.com/currency?from=USD&to=EUR',
    					dataType : 'jsonp',
    					success : function(data){alert(data.to);} //votre callback
    				});
    		});
    	return false;
    });
    En tout cas, Merci!

Discussions similaires

  1. [AJAX] Récupérer un tableau à plusieurs dimension reçu avec ajax (json)
    Par krizentherm dans le forum jQuery
    Réponses: 4
    Dernier message: 29/07/2013, 17h15
  2. Comment poster une vidéo avec ajax et json
    Par fiatlux dans le forum jQuery
    Réponses: 15
    Dernier message: 17/05/2013, 10h38
  3. [AJAX] coomment utiliser Json avec Ajax
    Par Xeuch dans le forum AJAX
    Réponses: 1
    Dernier message: 11/04/2013, 15h39
  4. afficher json avec ajax
    Par doudoubens dans le forum jQuery
    Réponses: 10
    Dernier message: 01/06/2011, 12h53
  5. Réponses: 2
    Dernier message: 10/09/2010, 20h29

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