388 votes

Surmonter "Afficher interdit par X-Frame-Options"

Je suis en train d'écrire une petite page web dont le but est à l'image de quelques autres pages, il suffit de les regrouper dans une seule fenêtre de navigateur pour faciliter la visualisation. Quelques unes des pages que je suis en train de cadre interdire de les encadrer et de lancer une "a Refusé d'afficher le document parce que l'affichage interdit par X-Frame-Options." erreur dans le navigateur Chrome. Je comprends que c'est une sécurité de limitation (pour de bonnes raisons), et n'ont pas accès à la changer.

Est-il une alternative de cadrage ou de la non-définition de la méthode pour afficher les pages dans une seule fenêtre qui ne sera pas déclenché par le X-Frame-Options d'en-tête?

193voto

Sean Points 1398

J'ai eu un problème similaire, où j'essayais d'afficher le contenu à partir de notre propre site dans une iframe (comme une boîte de dialogue de type avec Colorbox), et où nous avons eu un serveur à l'échelle de "X-Frame-Options SAMEORIGIN" en-tête sur le serveur source, l'empêchant de chargement sur notre serveur de test.

Cela ne semble pas être documenté n'importe où, mais si vous pouvez modifier les pages que vous essayez d'iframe (eg., ce sont vos propres pages), il suffit d'envoyer un autre X-Frame-Options d'en-tête avec une chaîne à tous les désactive le SAMEORIGIN ou de REFUSER des commandes.

par exemple. pour PHP, mettre

<?php
    header('X-Frame-Options: GOFORIT'); 
?>

en haut de votre page va faire les navigateurs combiner les deux, ce qui résulte en un en-tête de

X-Frame-Options SAMEORIGIN, GOFORIT

...et permet de charger la page dans un iframe. Cela semble fonctionner, lors de la première SAMEORIGIN commande a été définie au niveau serveur, et que vous souhaitez le remplacer sur une page-par-page cas.

Tout le meilleur!

155voto

Wil Points 1507

Oui, c'est ça. Une autre manière de faire, est 1) Copier le lien 2) Remplacer "watch?v=" avec "embed/" 3) mise à Jour de la chaîne de recherche de caractères et les paramètres en conséquence

Ainsi, dans YouTube, par exemple

http://www.youtube.com/watch?v=j6cxZp4ii6c 

devient

http://www.youtube.com/embed/j6cxZp4ii6c?autoplay=true

Cette même fonctionne comme un lien vers la vidéo en plein écran dans le navigateur. Juste thest lien 2 ci-dessus.

123voto

Q Studio Points 1259

Si vous obtenez cette erreur, tout en essayant d'intégrer une Carte Google map dans un iframe, vous devez ajouter &output=embed pour le lien source.

Source: http://www.rivercitystudio.com/blog/2011/09/google-maps-embedding-x-frame-options-change/

22voto

Kevin Vella Points 677

L'ajout d'un

  target='_top'

pour mon lien du facebook de l'onglet correction du problème pour moi...

20voto

Eric Corriel Points 346

Si vous obtenez cette erreur en essayant d'intégrer Vimeo contenu, modifier la src de l'iframe,

de: https://vimeo.com/63534746
pour: http://player.vimeo.com/video/63534746

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: