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

JavaScript Discussion :

[POO] Json et récupération de données sans ajax (iframe ?)


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut [POO] Json et récupération de données sans ajax (iframe ?)
    Bonjour,

    Je souhaite récupérer des données json d'un serveur mais sans utiliser Ajax.

    je dispose de l'adresse d'un serveur (par exemple 111.111.111.111/apiJson.do):
    cette page a comme source <html><head></head>{"x":1,"y":2}</html>

    Maintenant mon objectif est de récupérer ces données dans un code javascript en utilisant un navigateur limité (pas d'ajax: donc pas de requete xhr...).

    J'ai l'idée de creer une iframe dans mon code javascript pour récupérer la page, mais ensuite comment récupérer les données (vu que l'objet json n'a pas de nom sur mon exemple là dessus).

    Merci pour votre aide ou précision.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    l'iframe est en effet une possibilité ...
    va voir dans la FAQ comment converser entre page mère et iframe

  3. #3
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Avec du PHP, tu peux récupérer le contenu via file_get_content.
    Sinon essaye avec l'iframe :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <iframe id="MonIframe" name="MonIframe" src="ifrm.htm"></iframe>
    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    var json=eval('('+window.frames["MonIframe"].document.getElementsByTagName('html')[0].childNodes[1].nodeValue+')');

    Edit: Argh, SpaceFrog plus rapide que l'éclair

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par d-Rek Voir le message
    Avec du PHP, tu peux récupérer le contenu via file_get_content.
    Sinon essaye avec l'iframe :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <iframe id="MonIframe" name="MonIframe" src="ifrm.htm"></iframe>
    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    var json=eval('('+window.frames["MonIframe"].document.getElementsByTagName('html')[0].childNodes[1].nodeValue+')');

    Edit: Argh, SpaceFrog plus rapide que l'éclair
    Merci pour l'idée. Malheureusement, le navigateur étant limité, je ne peux utiliser la fonction getElementBy... donc peut être existe-il un code javascript pour récupérer le contenu de la balise <body> (étant sûr qu'à l'intérieur de cette balise se trouve un unique objet JSON et rien d'autre).

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    l'iframe est en effet une possibilité ...
    va voir dans la FAQ comment converser entre page mère et iframe
    Bonjour
    Merci pour ta réponse.

    J'arrive bien à récupérer le "document" contenant les données json en créant une iframe f et en mettant f.location.href="http://111....".

    Ma question est celle d'un débutant. Comment faire maintenant pour récupérer le corps?
    var json = f.document.body ?

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    as tu consulté la FAQ ?

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    as tu consulté la FAQ ?
    Oui, avant même de poster, enfin ! les rubriques concernées (gestion des frames, ajax, navigation, formulaire et autres objets)

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Tu peux être plus explicite stp?
    Des trois applications du lien, je ne vois pas celle qui m'est utile! elle répondent à un problème de communication entre frame mère et fille.

    Moi en fait, je n'ai aucun droit sur le serveur disposant des objets json (le serveur 111..../apiJson.do : nommons le A) dont le code source est comme je l'avais précisé plus haut (un seul objet json dans le corps), il n'y a pas de frame làbas.

    Moi je me situe sur un autre serveur où je développe une ihm capable de récupérer ces données json du serveur A et ensuite les utiliser dans mon code javascript pour l'affichage chez le navigateur client. Je précise que ces navigateurs sont limités et ne peuvent utiliser les technos ajax (web 2.0 en général), ni la fonction getElementById , ByName, ByTagName.

    Moi j'ai pensé créer une iframe (dans mon code javascript à moi), et lui associant l'url de la page du serveur A, et mon but est de récupérer l'objet json unique se trouvant à cette url (objet se trouvant dans la balise <body>).

  10. #10
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    As tu la possibilité de faire du php du coté du serveur qui sert cette page ?

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par marcha Voir le message
    Salut,

    As tu la possibilité de faire du php du coté du serveur qui sert cette page ?
    Bonjour,

    Non pas de php. De manière générale pas de dynamisme. l'IHM doit pouvoir se déployer sur un serveur http et non d'application.

  12. #12
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Je suis assez stupéfait que le serveur A renvoie du Json dans un corps de page html, c'est utilisé ailleurs sous cette forme pour une application existante ?

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par marcha Voir le message
    Je suis assez stupéfait que le serveur A renvoie du Json dans un corps de page html, c'est utilisé ailleurs sous cette forme pour une application existante ?
    Exactement, sauf que l'application existante peut utiliser les techniques basiques de l'ajax (xhr...), moi je dois faire de même, mais pour des navigateurs limités et avec une ihm "statique" (pas de jsp, php).

  14. #14
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Tu a la possibilité de faire rajouter une page php sur le serveur A (je parles pas de demander des modifications sur le fonctionnement existant)

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par marcha Voir le message
    Tu a la possibilité de faire rajouter une page php sur le serveur A (je parles pas de demander des modifications sur le fonctionnement existant)
    Non, aucune, c'est une api json dont je n'ai aucun droit et qui sert d'autres applications (ces dernières utilisent de l'ajax).

  16. #16
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Tu as une liste des API DOM supportée par ton navigateur ?

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par marcha Voir le message
    Tu as une liste des API DOM supportée par ton navigateur ?
    level 0 C'est un navigateur pour systèmes embarqués donc pas terrible, et la version de javascript est la 1.3 donc...

  18. #18
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Tu as essayé ces possibilités sur le document de ton iframe ?

    document.body.innerHTML
    document.all[0].innerHTML
    document.documentElement.innerHTML

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par marcha Voir le message
    Tu as essayé ces possibilités sur le document de ton iframe ?

    document.body.innerHTML
    document.all[0].innerHTML
    document.documentElement.innerHTML
    oui et aucune ne marche. Sur un test sur le navigateur firefox, le premier a une valeur de chaine nulle "" et les deux suivants s'affichent comme tel: <head></head><body></body>

  20. #20
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Ouch... je vois difficilement comment tu peux t'en sortir

    Je voudrais bien t'aider mais si je n'ai pas les outils sous la main pour tester,
    c'est un peu hasardeux.

    Bon courrage...

Discussions similaires

  1. [AJAX] Récupération de données via ajax
    Par stade13 dans le forum jQuery
    Réponses: 2
    Dernier message: 11/02/2013, 10h39
  2. [AJAX] Récupération de données en AJAX avec jQuery et IE
    Par ILP dans le forum jQuery
    Réponses: 2
    Dernier message: 22/11/2012, 14h47
  3. [AJAX] récupération de données en AJAX
    Par Mayel35 dans le forum AJAX
    Réponses: 1
    Dernier message: 24/02/2011, 17h03
  4. Réponses: 1
    Dernier message: 08/09/2010, 22h17
  5. Récupération de donnée formulaire AJAX vers PHP
    Par Starbug dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/10/2007, 18h38

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