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 :

alternative au xmlhttprequest


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Par défaut alternative au xmlhttprequest
    Bonjour à tous,

    je suis confronté à un très gros problème.

    Je dois en faire créer un widget pour permettre au utilisateur de rechercher leur horaire de train à partir de la solution existante accessible par le web.

    J'ai donc décidé d'utilisé l'objet XMLHttpRequest pour envoyé ma requête par POST.

    Sur mon lieu de stage, tout ce passe correctement, tout fonctionne impéccablement.

    De retour chez moi, rien ne fonctionne, erreur sur Firefox et erreur sur Internet Explorer.

    En faisant quelques recherches, il est apparemment impossible avec xmlhttprequest de faire des requêtes entre des domaines différents.

    Est ce qu'il existe une alternative au XmlHttpRequest?

    merci

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    http://www.ajax-cross-domain.com/ article et exemple a l'appuis

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Par défaut
    Il n'y a donc pas d'autre alternative.

    Je suis tombé dessus tout à l'heure.

    Le problème c'est faut installer ca sur le serveur de la page web.
    Seulement les widgets c'est du local, tout est stocké sur le disque de l'utilisateur.

    J'ai lu que L'objet XdomainRequest le permet, mais il est seulement prévue dans la prochaine version d'explorer (IE 8).

  4. #4
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Oui, c'est le vieux principe (pour la sécurité) de la Same Origin Policy

    jette un oeil par ici

    (par contre je suis un peu étonné : je croyais que IE n'était pas concerné par cette vieille règle datant de Netscape... )

    Pour te sortir de là, tu vas devoir envisager :
    - soit de "signer" ton script
    - soit de l'inclure dans une archive (elle-même signée)
    (ces deux premières solutions sont assez contraignantes, et perso je n'y connais presque rien ^^)
    - soit enfin d'écrire une couche proxy sur ton serveur pour relayer les requêtes vers le service web approprié (ce qui permet d'éviter le souci que tu rencontres au niveau client) (recommandé )

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Par défaut
    Donc si je comprend bien, je dois mettre tout ce qui est Javascript dans un seul fichier, et ensuite signer ce fichier .js à l'aide d'un certificat?

  6. #6
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    C'est une des voies possibles mais je dois t'avertir que ce n'est pas évident, il faut avoir un logiciel adapté, signer à chaque nouvelle mise à jour, etc.
    Je n'ai pas assez d'expérience pratique de ce genre de choses donc je préfère laisser d'autres s'exprimer à ce sujet, mais : sache que ce n'est pas forcément la solution la plus simple à mettre en oeuvre... ^^

  7. #7
    Membre expérimenté Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Par défaut
    Il y a un autre moyen de récupérer du contenu distant sans rechargement, c'est d'utiliser une iframe invisible.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Par défaut
    Le problème de l'iframe est qu'il n'est pas possible de faire des requêtes avec la méthode POST alors que c'est ce qu'il me faut.

    Du moins c'est ce que j'ai compris d'après ce que j'ai lu.

  9. #9
    Membre expérimenté Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Par défaut
    Si, c'est possible.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <iframe name="recepteur" style="width:0px;height:0px;"></iframe>
    <form method="POST" target="recepteur" action="...">
    ...
    </form>

  10. #10
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    le souci est que tu auras les mêmes problèmes d'accès aux éléments de l'iframe ...
    il faut que dans l'iframe tu appelles une page php sur le même domaine qui aille cherche et parser les infos coté serveur pour envoyer une page qui sera alors accessible puisque sur le même domaine
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    le souci est que tu auras les mêmes problèmes d'accès aux éléments de l'iframe ...
    il faut que dans l'iframe tu appelles une page php sur le même domaine qui aille cherche et parser les infos coté serveur pour envoyer une page qui sera alors accessible puisque sur le même domaine
    Heu... oO
    Du coup à quoi sert de passer par une iframe dans ce cas ?

  12. #12
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    ne pas recharger la page !
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Par défaut
    Donc l'iframe n'est pas la solution à mon problème
    seule solution, IE 8 sort le plus vite possible, ainsi que la prochaine version de FF et que tout le monde installe un des deux

  14. #14
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    ben si un iframe avec php
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Par défaut
    Les Widgets n'acceptent pas le Php

  16. #16
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    les widgets et ce n'est meêm pas une question d'accepter, c'est une question d'acceder...
    mais justement si tu veux pouvoir acceder aux infos par javascript ils faut bien les ramener sur le même domaine.
    DoOnc faire avec php une page sur ton domaine qui sera lu dans un iframe accessible en javascript ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Par défaut
    Je suis un peu perdu en fait.
    Donc le Cross-Domain est possible en php mais c'est pas en JavaScript c'est bien cà?
    Donc si je veux pouvoir accéder au contenu de ma page je dois y accéder par une page intermédiaire contenu sur le même domaine que celle-ci?
    Mais ce qui revient au même?
    Pour l'instant je développe un widget pour la Sidebar Vista pour un premier essai. Est ce que j'aurai ce même soucis si c'est pour les gadgets Yahoo, Live.com et iGoogle?

    Désolé pour toutes ces questions mais je suis un peu perdu...


    Merci

  18. #18
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    cote client le crossdomain n'est pas possible, tu auras toujours un message d'interdiction d'accès au contenu du la page ... (sauf permissions spécifiques au niveau du paramétrage serveur)

    Par contre si coté php tu concatènes une page à partir des éléments recupérés sur l'autre domaine, pour le client se sera invisible. le browser du client lui ne verras qu'une page sur le même domaine. Et du coup tu y auras accès sans restrictions
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Par défaut
    ah d'accord je comprend mieux. il faut que je traite la réponse sur la page php ou alors dire au serveur d'autoriser ma demande.

    Merci pour cet éclaircissement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. [SOAP] alternative à XmlHttpRequest
    Par kururin dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 20/10/2011, 19h08
  3. Alternative au dbms_output ?
    Par dam1311 dans le forum Oracle
    Réponses: 10
    Dernier message: 24/11/2004, 08h11
  4. Alternative(s) a CVS
    Par MrSimon dans le forum SCM
    Réponses: 3
    Dernier message: 06/03/2004, 11h37
  5. [FORMATION] Formations par alternance
    Par chobol dans le forum Etudes
    Réponses: 10
    Dernier message: 20/02/2004, 11h28

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