/ / Certains sites Web n'apparaîtront pas avec Iframe et la fonction .load () - javascript, jquery, html, html5, iframe

Certains sites Web n'apparaîtront pas avec Iframe et la fonction .load () - javascript, jquery, html, html5, iframe

J'essaie de charger des pages Web sur une autre page Web(pas hébergé sur mon serveur), mais en raison de scripts intersites / de sécurité, je ne parviens pas à charger certaines pages Web. Par exemple, Google ne s'affiche pas dans un iframe ou si jquery est utilisé:

 <script>
$("#siteload").html("<object data="http://google.com">");
</script>

Juste une remarque: "je n’essaye pas de charger Google spécifiquement, juste une page Web qui" ne permet pas les iframes ..

Est-ce que quelqu'un sait d'une solution de contournement? Que diriez-vous de charger un fichier .html sur mon serveur, cela fonctionnera-t-il? & Comment?

Merci de votre aide.

Réponses:

0 pour la réponse № 1

Certains sites Web bloquent l'utilisation des iframes. Google est l'un d'entre eux.

EDIT: Je pense que Google envoie un paramètre sameorigin avec elle.


0 pour la réponse № 2

Quelques solutions possibles:

  1. Ne pas utiliser un iframe, utiliser un div et $ .load ()

  2. Trouvez des solutions au cas par cas, dans le cas de Google, utilisez un Moteur de recherche personnalisé Google au lieu de cela (il existe des solutions compatibles avec les iframe pour la plupart des choses, mais il faut du temps pour les trouver)

  3. Utiliser un proxy

  4. Le cas échéant (Google en est un exemple), créez votre propre page et essayez de faire correspondre le style de la page d'origine (Google), puis utilisez une API pour obtenir le contenu de la recherche.

Notez que 3 et 4 coûtent potentiellement beaucoup d'argent, en fonction du trafic.


0 pour la réponse № 3

Cela est fait exprès, les développeurs de sites Web peuvent définir certains en-têtes dans la réponse pour contrôler les URL (les autres sites Web) pouvant charger leur contenu. <iframe>, <frame> or <object>. C’est un moyen de protéger votre site Web contre des attaques telles que Clickjacking.

Par exemple: la plupart des navigateurs supportent la Options X-Frame entête

Il existe trois valeurs possibles pour X-Frame-Options:

DENY
The page cannot be displayed in a frame, regardless of the site attempting to do so.

SAMEORIGIN
The page can only be displayed in a frame on the same origin as the page itself.

ALLOW-FROM uri
The page can only be displayed in a frame on the specified origin.

Notez que X-Frame-Options: Allow-From n'est pas pris en charge par Chrome, Safari, etc.

Les navigateurs modernes les traitent avec la nouvelle politique de sécurité du contenu (CSP). Vous pouvez donc contrôler cela en utilisant le nouvel en-tête:

Content-Security-Policy: cadres-ancêtres

Le CSP 2.0 qui est pris en charge par tous les nouveaux navigateurs est également entièrement rétrocompatible.

Je sais que ce n'est pas la réponse à votre question, mais ces informations vous donneront une idée de pourquoi vous ne pouvez pas charger les sites Web dans votre iFrame.