18 votes

L'iframe HTTPS à l'intérieur d'une page HTTPS ne fonctionne pas

Comment utiliser correctement les pages github intégrées dans un iframe ?

J'ai hébergé un site web dans firebase et il utilise un domaine personnalisé sur https, par exemple, https://www.example.com .

Ce site web utilise react et d'autres choses, mais pour une route (celle de la page d'atterrissage) je voudrais utiliser une page statique hébergée sur github, par exemple https://example.github.io/page . Pour ce faire, j'ai créé un iframe à l'intérieur de la route. https://www.example.com/page .

Le problème est que je reçois l'erreur suivante :

Contenu mixte : La page à ' https://www.example.com/page a été chargé via HTTPS, mais a demandé une ressource non sécurisée ' http://example.github.io/page/ '. Cette demande a été bloquée ; le contenu doit être servi via HTTPS.

Ce qui est étrange, c'est que l'iframe se présente correctement :

<iframe title="Page" src="https://example.github.io/page">unwanted text</iframe>

Il utilise déjà https, mais il semble que cela soit ignoré. J'ai déjà essayé d'utiliser cette méta <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> et fermer l'iframe avec </iframe> et ajouter un texte indésirable à l'intérieur de l'iframe.

Pouvons-nous résoudre ce problème ?

43voto

rustyx Points 2722

Si vous examinez attentivement votre code HTML et le message d'erreur, vous remarquerez une légère différence dans les URL, outre la partie protocole :

  • https://example.github.io/page - dans le iframe src étiquette
  • http://example.github.io/page/ - dans le message d'erreur

La raison pourrait être que l'URL https://example.github.io/page renvoie un rediriger à la version "canonique" avec la barre oblique de fin de ligne ( /page/ ), mais une URL de redirection doit être une URL complète, et le serveur, pour une raison quelconque, n'inclut pas le protocole réel dans l'URL de redirection, utilisant toujours http:// à la place. Cela peut être dû à la configuration ou au codage du côté serveur (voir également le problème github #289 ).

Comme solution de rechange, utilisez une URL qui ne déclenche pas la redirection de canonicalisation, c'est-à-dire https://example.github.io/page/ .

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:

X