2014-11-26 16 views
20

In meiner HTTPS-fähigen Website habe ich einen Iframe hinzugefügt, der Inhalt von meiner anderen Website zeigen sollte, aber unter https funktioniert es nicht.Gemischte Inhalte in Chrome und IE

<iframe src="//myothersite.com"></iframe> 

In Firefox neueste Version funktioniert alles gut.

In Chrome wird der iframe nicht geladen und in der Konsole sehe ich diese beiden Fehler

Mixed Content: The page at 'https://mysite' was loaded over HTTPS, but requested an insecure resource 'http://myothersite.com'. 
This request has been blocked; the content must be served over HTTPS. 
Failed to load resource: net::ERR_CACHE_MISS 

In IE Inhalt Last falsch und ich eine Warnmeldung angezeigt; Wenn ich auf Unsichere Inhalte zulassen klicke, wird es korrekt geladen.

Die Frage ist: Wie kann ich das IE und Chrome wie in Firefox tun (laden Sie gemischte Inhalte ohne irgendwelche Warnungen)?

Hinweis: Ich habe keine Browsereinstellungen geändert.

Antwort

13

Eigentlich hat Firefox gestartet, das gleiche zu tun: How to fix a website with blocked mixed content

es Sinn macht. Wenn der Benutzer mit HTTPS auf eine Site zugreift, erwartet er eine gesicherte Erfahrung, und er weiß möglicherweise nicht, dass Teile der Anwendung unter nicht sicheren Verbindungen geladen werden. Aus diesem Grund blockiert der Browser solche Inkonsistenzen.

Sie müssen HTTPS auf myothersite.com bereitstellen.

+0

Ok, es Sinn machen, wenn myothersite.com ist nicht mein site.But myothersite.com ist meine Seite und ich kann quarantee sicher .I Thinck-Browser sollten solche Funktionalität bieten – cosset

+0

Sie können nichts garantieren. Wenn die Verbindung nicht sicher ist, kann jeder in der Mitte die Verbindung abhören. IFRAMEs sind wie eine andere Browser-Registerkarte, sie verwenden ihre eigene Verbindung und in diesem Fall ist es unsicher. – vtortola

+0

ich stimme zu, aber warum Firefox die Verwendung unsicher ohne Warnungen? – cosset

7

Offensichtlich ist es am besten nicht mit gemischtem Inhalt zu haben MITM-Angriffe zu verhindern, aber für diejenigen, die nicht die URL steuern kann, sollte dies den Trick:

Ändern Sie den src = „http://linkToUrl.com“ zu

src = "// linkToUrl.com/script.js"

+5

Das wird das Problem nicht lösen, dass die Sub-HTTP-Anfrage von der 'script.js' gesendet wird. Fügen Sie diese 'hinzu. – towry

1

enter image description here

wenn ich die URL ein: <a href="http://127.0.0.1:8080/download/1.txt"></a> von einer HTTPS-Anfrage, es Fehler aus: Mixed Inhalt: Die Seite bei 'https://127.0.0.1/index.html' über HTTPS geladen wurde, sondern aufgefordert, eine unsichere Ressource 'http://127.0.0.1:8080/download/1.txt'.

This request has been blocked; the content must be served over HTTPS. 
Failed to load resource: net::ERR_CACHE_MISS 

wenn ich die target="_blank" auf die URL hinzugefügt: <a target="_blank" href="http://127.0.0.1:8080/download/1.txt">, es funktioniert! , Es klappt! es ist bekannt, dass target="_blank" bedeutet, das verknüpfte Dokument in einem neuen Fenster oder Tab oder einer neuen Anfrage zu öffnen!

+0

Dies ist im iframe! –

0

Es tut mir leid, das ist nicht so technisch wie die anderen Antworten, aber ich hatte das gleiche Problem, jsquery wie folgt zu verbinden, und für mich wurde es nur durch die Änderung http:// zu https:// behoben. Es kann nicht funktionieren, aber es hat für mich funktioniert und es könnte für Sie arbeiten.

0

Problem ist gemischte Inhalte, der Browser wird uns nicht erlauben, nur das zu tun.

Sie müssen ändern url aus:

http://example.com 

zu

//example.com 
Verwandte Themen