Partage
  • Partager sur Facebook
  • Partager sur Twitter

XMLHttpRequest : pas possible de lire une adresse distante ?

Sujet résolu
    2 juillet 2010 à 21:04:42

    Bonjour,
    Je suis assez surpris ; en essayant ceci : xhr.open('GET','http://www.google.fr',true); // Ou n'importe quelle autre adresse distante
    je me suis rendu compte qu'on ne récupérait rien : xhr.responseText et une chaine vide, xhr.responseXML vaut null et xhr.status vaut 0 . En clair, la requête est carrément avortée.
    Est-ce un comportement normal ? Y a-t-il moyen d'accéder à une adresse distante via AJAX ?

    Merci de vos réponses.

    • Partager sur Facebook
    • Partager sur Twitter
      2 juillet 2010 à 21:26:09

      C'est normal, c'est pour des raisons de sécurité... seul Internet Explorer (le 6 je suis sûr, le 8 je ne sais pas) permet de le faire.
      • Partager sur Facebook
      • Partager sur Twitter
        3 juillet 2010 à 0:05:12

        Ok, merci.
        Mais je ne vois pas le danger. Et surtout c'est facilement contournable : tu charges une iframe et tu récupères le contenu, c'est équivalent, non ?
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          4 juillet 2010 à 0:56:04

          bah va y, essaie de récupérer le contenu (en javascript toujours) d'une iframe distante :D

          Maintenant tu peux faire un peu de requetes cross domaine, mais c'est pas la joie. Le plus simple c'est de foutre un reverse proxy quelque part :)
          • Partager sur Facebook
          • Partager sur Twitter
            4 juillet 2010 à 1:07:16

            Reverse proxy c'est le truc qu'on avait galérer à mettre sur mon serveur pour couchDB non ?
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              4 juillet 2010 à 1:09:46

              probablement,

              c'est le truc qui transforme une requete sur
              http://mondomaine.com/google en
              http://google.fr

              et qu'on peut donc récupérer.
              • Partager sur Facebook
              • Partager sur Twitter
                4 juillet 2010 à 1:11:50

                [ >_< , trop lent, grillé x2]

                Ok, j'essaie pas, je te crois. En réfléchissant, le danger est pour la page hôte en fait, puisque la page appelée peux modifier son code et nuire à la page hôte, c'est bien ça ? Je cherchais un danger pour la page appelé en fait, donc je trouvais pas.

                Cela dis, rien empêche d'appeler une page de ton site, qui elle appelle une page d'un autre domaine.

                Je passe en résolu, j'ai pas besoin de faire du cross domaine, c'est en testant la classe Ajax() que je me suis concocté que j'ai remarqué ça, et je comprenais pas.

                Merci à vous :)
                • Partager sur Facebook
                • Partager sur Twitter
                  4 juillet 2010 à 1:12:51

                  LCaba, tu vois pas les problèmes de sécurité ?

                  Exemple :

                  http://tiller.fr/, je met une iframe vers gmail.com. T'as mis la connexion automatique à gmail, donc ça t'envoie directement sur tes mails.

                  Je récupère le code source et Yata, Free porn email \o/
                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 juillet 2010 à 1:14:55

                    Ok je vois mieux. Alors que depuis le serveur, t'as pas accès aux données locales. Merci.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 juillet 2010 à 14:52:30

                      Un petite question toute bête, pourquoi le cross domaine est-il plus sécurisé alors ?
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        24 juillet 2010 à 15:01:21

                        Parce qu'il faut faire une manip pour l'autoriser explicitement. Et je suppose qu'il y a moyen de restreindre l'accès à certaines urls ou ce genre de trucs. Y'a un tuto là dessus.

                        • Partager sur Facebook
                        • Partager sur Twitter

                        XMLHttpRequest : pas possible de lire une adresse distante ?

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown