Pourquoi une iframe affiche « refused to connect » : X-Frame-Options ou CSP frame-ancestors sur la page intégrée. Collez ses en-têtes de réponse pour obtenir le verdict, puis copiez la correction côté serveur.
Le cadre gris « refused to connect » signifie que la page dans votre iframe a demandé au navigateur de ne pas être intégrée. Elle le fait avec un en-tête de réponse X-Frame-Options (DENY ou SAMEORIGIN) ou une règle Content-Security-Policy frame-ancestors. Seul le serveur du site intégré peut lever ce blocage. Collez ses en-têtes ci-dessous pour voir quelle règle vous bloque.
Ce que chaque valeur d'en-tête signifie pour votre iframe
Cette erreur n'est pas une panne réseau et votre balise iframe n'a rien d'anormal. Le navigateur a récupéré la page, lu un en-tête qui interdit l'intégration et remplacé le contenu par une erreur. La raison est la protection contre le clickjacking : une page que n'importe qui peut intégrer peut être recouverte de boutons invisibles. La solution dépend du serveur qui a envoyé l'en-tête.
Non. La règle est appliquée par le navigateur du visiteur pour le compte du site intégré, et aucun attribut de votre iframe ne peut l'annuler. Les seules options sont de modifier les en-têtes du site intégré, d'utiliser une URL d'intégration fournie par le site, ou de mettre un lien.
Cherchez X-Frame-Options: DENY, ou frame-ancestors 'none'. Les deux bloquent tous les parents, y compris les pages du même domaine. Passez à SAMEORIGIN ou à frame-ancestors 'self'. N'oubliez pas qu'un autre sous-domaine ou un autre port constitue une autre origine.
Utilisez frame-ancestors, car il peut lister plusieurs parents autorisés et l'emporte dès que les deux sont présents. Si vous envoyez aussi X-Frame-Options, gardez-le cohérent avec la règle CSP pour ne pas induire en erreur la prochaine personne qui lira la configuration.
La page de lecture ou de lieu ordinaire envoie généralement un en-tête d'intégration, tandis que le service publie une adresse d'intégration séparée prévue pour les iframes, souvent sous Partager puis Intégrer. Notre générateur de code d'intégration convertit pour vous les liens pris en charge en ces adresses d'intégration.
Oui. Si votre iframe se trouve dans une autre iframe, chaque ancêtre jusqu'à la page principale doit respecter la règle, pas seulement le parent direct.
Chaque exemple autorise le même site plus un partenaire. Remplacez https://partner.example par l'origine qui doit pouvoir vous intégrer, ou utilisez 'none' pour bloquer tout le monde.
always conserve aussi l'en-tête sur les pages d'erreur. Supprimez toute ancienne ligne X-Frame-Options pour que les deux règles ne divergent pas.
Nécessite mod_headers. Header always set remplace toute valeur antérieure du même en-tête.
Helmet définit X-Frame-Options à SAMEORIGIN par défaut. Le désactiver et définir frame-ancestors garde une seule source de vérité.
headers() ajoute des en-têtes de réponse à chaque route correspondante. Les plateformes d'hébergement peuvent ajouter les leurs, vérifiez donc ensuite la réponse en ligne.
Collez les en-têtes de réponse de la page dans l'iframe. Tout s'exécute dans cette page ; rien n'est récupéré.
En-têtes de réponse de la page intégrée
Origine de la page qui contient l'iframe
Origine de la page intégrée
Rétablir les en-têtes d'exemple
Verdict
Ce parent peut intégrer la page.
Le navigateur refusera d'afficher cette page dans l'iframe.
Pas encore de verdict clair.
Bloqué par Content-Security-Policy: frame-ancestors 'none'.
Autorisé par frame-ancestors : {v} correspond à l'origine parente.
Bloqué par frame-ancestors : aucune source de la liste ne correspond à {v}.
X-Frame-Options est présent mais ignoré, car c'est frame-ancestors qui décide.
Bloqué par X-Frame-Options: DENY.
Autorisé par X-Frame-Options: SAMEORIGIN, et les origines correspondent.
Bloqué par X-Frame-Options: SAMEORIGIN, et {v} est une autre origine.
ALLOW-FROM est obsolète et ignoré, il ne bloque donc pas.
X-Frame-Options a plusieurs valeurs différentes. Envoyez-en exactement une.
Content-Security-Policy-Report-Only ne bloque jamais ; il a été ignoré.
Aucun en-tête d'intégration trouvé, donc n'importe quel site peut intégrer cette page.
Saisissez les deux origines sous forme d'URL complètes, par exemple https://example.com.
Commencer gratuitement · Sans carte bancaire