Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupération de code source html en cross-domain

    15 mai 2010 à 19:42:58

    Hello, voilà je suis en train de bosser sur une appli qui combine les résultats de Yahoo Site Explorer et Google. Les résultats proviennent de requêtes GET que je récupère à l'aide d'un script PHP, qui effectue des traitements dessus et enfin à l'aide de l'ajax j'affiche ça de manière asynchrone.

    En gros le schéma est le suivant :
    1. Client => Mon serveur => Serveur distant
    2. Client <= Mon serveur <= Serveur distant

    Malheureusement, je me doute que si trop de requêtes proviennent de mon serveur, l'IP sera probablement bloquée. D'ailleurs, Yahoo Site Explorer limite dans son API le nombre de requêtes à 5000 et Google ne doit pas être en reste.
    La solution serait que le client aille lui même faire les requêtes vers ces serveurs distants et renvoi ensuite les données brutes sur mon serveur, comme ceci :

    1. Client => Serveur distant
    2. Client <= Serveur distant
    3. Client => Mon serveur
    4. Client <= Mon serveur

    Le problème c'est qu'on sait tous que pour des raisons de sécurité, les requêtes cross-domain sont interdites par les navigateurs.
    Je ne comprend pas pourquoi il n'existe pas un objet en javascript capable de faire ces fameuses requêtes cross-domain, à qui on interdirait simplement l'accès aux trucs sensibles comme les cookies...

    Je cherche sans relâche, les quelques trucs que j'ai trouvé c'était par exemple l'utilisation de balises dynamiques <javascript> ou alors pour les nouvelles générations de navigateurs un fichier "crossdomain.xml" placé sur les serveurs distants autorisant l'accès en cross-domain depuis certains domaines. Bref, dans mon cas ces solutions ne servent à rien.

    Si quelqu'un a un éclair de génie pour résoudre ce casse-tête, je lui en serais infiniment reconnaissant !
    • Partager sur Facebook
    • Partager sur Twitter
      15 mai 2010 à 19:59:22

      L'ajax cross-domain existe, mais le domaine de destination doit accepter ce type de requête, et le navigateur doit les accepter aussi. (Cf le tutoriel ajax du site)

      Sinon c'est impossible autrement.

      Il est peut-être possible de le faire en flash (?) et comme le javascript et le flash peuvent communiquer, ça ferait Client JS => Client Flash => Serveur

      Mais bon.
      • Partager sur Facebook
      • Partager sur Twitter
        15 mai 2010 à 20:22:55

        Oui c'est bien ce que je disais, le serveur distant doit placer un fichier avec les domaines autorisés ou autoriser n'importe quel domaine. Je doute que Google veuille accepter mon domaine...

        Pour le flash, j'y ai pensé et apparemment il y a les mêmes restrictions cross-domain. Dans le pire des pires des cas je penses que je vais me tourner vers un applet Java :/
        • Partager sur Facebook
        • Partager sur Twitter

        Récupération de code source html en cross-domain

        × 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