Habe "Geblockt laden von gemischten aktiven Inhalten" auf HTTP website

Problem

Ich entwickle eine website, serviert mit HTTP-Protokoll. In der Entwicklung, ich benutze Webpack mit der webpack-dev-server, der dazu dient die Seite lokal auf http://localhost:9090.

War ich überrascht zu sehen, im Firefox-58-Konsole die folgenden gemischter Inhalt Fehlermeldung, laden Sie die schriftart-Datei. Es ist komisch für mich, denn die Seite wird serviert, mit HTTP, nicht HTTPS, und ich dachte, mixed content Fehler beschränkt sich nur auf HTTPS-Seiten.

`Blocked loading mixed active content “http://localhost:9090/b1aa06d82e70bbd5a14259a94c9bbb40.ttf”

Fand ich heraus, dass die Quelle des Fehlers ist YouTube video eingebettet in eine <iframe> auf der Seite (<iframe src="https://www.youtube.com/embed/...>). Sobald ich entfernen Sie die YouTube-einbetten, die Fehlermeldung verschwindet von der Konsole aus.

Verstehe ich nicht, dieses Verhalten, denn es ist nicht verschachtelt HTTPS-iframe, das macht diese Anfrage, aber die äußeren HTTP-Seite (top-level browsing context)!

Zusammenfassung

Der äußeren Seite (top-level browsing context) serviert mit HTTP. Nur der eingebetteten iframe-Zugriff mit HTTPS. Die HTTP-Anforderung für eine schriftart-Datei, die auf der äußeren Seite macht (nicht das eingebettete iframe) erzeugt gemischte Inhalte Fehler in Firefox 58 Konsole.

Code-Beispiele

Geben ein Beispiel erstellte ich 2 Stifte auf Plunker serviert, der über HTTP und Importe (die Plunker Website selbst, nicht mein code) WOFF-font-Font-Awesome-über-HTTP.

Beispiel Mit Fehler, die YouTube-iframe eingebettet, die über HTTPS, produziert den folgenden Fehler im Firefox-58-Konsole: Blocked loading mixed active content “http://plnkr.co/css/font/Font-Awesome-More.woff”.

Beispiel Ohne Fehler, das ist der gleiche code nur mit den iframe entfernt, produziert keine Fehler.

Fragen

  • Wie kann Sie eine gemischte Inhalte auf der Seite geladen, per HTTP-Protokoll? Ich dachte gemischte Inhalte können nur existieren Webseiten, die über HTTPS geladen. Bedeutet dass eine resource über HTTPS (wie es von YouTube einbetten) macht alle erforderlichen Inhalte über HTTP mixed content?
  • Wie kann ich den Fehler beheben? Ich Plane nicht, zu dienen, die website über HTTPS und ich will, dass meine Schriftarten zu laden ordentlich auf die Produktion HTTP-server.
  • Die <iframe src="https://www.youtube.com/embed/...> ist ein separates Dokument — HTTPS — und den mixed-content-Fehler ist vermutlich über das Dokument, richtig?
  • Nein, das wäre sinnvoll, aber die Fehler sind über die Anforderungen von meinem Haupt-HTML-Datei - font-Dateien, die angefordert von meinem "lokalen" stylesheets.
Schreibe einen Kommentar