web-dev-qa-db-fra.com

le contenu de l'iframe ne peut pas apparaître dans Firefox

Ci-dessous mon code: 

<div style="border: solid 1px #000000; margin: 5px;">
  <iframe src="http://www.w3schools.com" width="100%" height="300px" scrolling="yes"><p>Your browser does not support iframe.</p></iframe>     
</div>   

Le contenu de iframe fonctionne bien en chrome mais pas en firefox. J'ai désactivé les add-ons mais mon iframe est toujours vide. Est-ce que quelqu'un peut m'aider s'il vous plait? 

9
bsm

Si vous essayez d'ajouter cette Iframe sur un site Web crypté SSL (https: //), cela ne fonctionnera plus depuis Firefox 23 car Mozilla a décidé de bloquer tout le contenu non crypté sur les sites Web cryptés (par exemple, http-iframes sur https-sites Web). Vous pouvez changer ce comportement dans votre propre installation de Firefox en tapant about:config dans la barre d'adresse et en définissant security.mixed_content.block_active_content sur false. Mais cela ne vous aidera pas pour tous les autres visiteurs FF23 sur votre site Web. 

13
Keyser Soze

À compter du 05/2018, le navigateur refuse l'accès à l'iframe en raison de la définition de l'en-tête X-Frame-Options sur 'sameorigin'.

Testé la page avec Firefox et obtenir un iframe vierge . Voici ce que dit la console:

Load denied by X-Frame-Options: https://www.w3schools.com/ does not permit cross-Origin framing.

Pourquoi ça? Je vais donner une chance à la console Chrome, voici ce qu'il dit:

Refused to display 'https://www.w3schools.com/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.

Fondamentalement, l'en-tête X-Frame-Options (ne confondez pas avec CORS) est défini sur 'sameorigin', cela signifie que le navigateur est autorisé à afficher le contenu iframe uniquement s'il est intégré au même domaine et au même protocole ( https: //www.w3schools.com/ n'est pas la même origine que http://www.w3schools.com/ ).

Voici quelques documents sur x-frame-options: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options

4
Giacomo Penuti

Je ne sais pas si c'est lié, mais quand j'essaie de demander à w3schools par c # il répond 503 erreur interdite. Ils peuvent donc utiliser quelque chose pour empêcher l'affichage d'iframes, etc. Facebook a des restrictions similaires, vous ne pouvez pas afficher leur like box iframe à moins de vous connecter. 

2
Kuzgun

Pourquoi personne n'a encore mentionné la SCRO?

FROM mdn

Le partage de ressources d'origine croisée (CORS) est un mécanisme qui utilise en-têtes HTTP supplémentaires permettant à un agent d'utilisateur d'obtenir l'autorisation d'accéder à ressources sélectionnées à partir d'un serveur dont l'origine (domaine) est différente de celle de le site actuellement utilisé. Un agent d'utilisateur crée un HTTP d'origine croisée request quand il demande une ressource d'un domaine, protocole, différent. ou port que celui d'où provient le document actuel.

Exemple de demande d'origine croisée: Une page HTML servie à partir de http://domain-a.com fait une demande src pour http://domain-b.com/image.jpg . De nombreuses pages sur le Web se chargent aujourd'hui des ressources telles que des feuilles de style CSS, des images et des scripts provenant de fichiers séparés domaines, tels que les réseaux de distribution de contenu (CDN).

Pour des raisons de sécurité, les navigateurs limitent les requêtes HTTP cross-Origin initié à partir de scripts. Par exemple, XMLHttpRequest et le L'API de récupération suit la politique de même origine. Cela signifie qu'un site web Une application utilisant ces API peut uniquement demander des ressources HTTP à partir du fichier même domaine depuis lequel l’application a été chargée, sauf si les en-têtes CORS sont utilisé.

Cela signifie que les sites Web que vous essayez de saisir à partir de l'iframe sont configurés pour refuser les demandes de votre site ou de tiers (si ce n'est toutes).

1
MarioE

J'ai eu le même problème. Pour moi, la cause était une barre oblique à la fin de l'URL.

Ne fonctionne pas:

<iframe src="http://example.com/some/sub/folder/"></iframe>

Travaux:

<iframe src="http://example.com/some/sub/folder"></iframe>
0
Berty

Vous devez avoir le fichier source d'iframe sur localhost. 

Firefox et Chrome n'affiche pas cette iframe:

<iframe src="https://www.yourdomain.com/form.html"></iframe>

Travaux:

<iframe src="/form.html"></iframe>
0
slavo micik