IE7 - meta-refresh im inneren eine HTTPS-IFRAME-Ursachen mixed-content-Warnung
Habe ich eine ASP.NET Anwendung, die das keep-alive-durch die Verwendung von einem versteckten IFRAME mit refresh-header (oder meta-refresh-tag in der Seite).
Für viele, aber nicht alle Instanzen von Internet Explorer (reproduziert, so weit auf IE7 und IE8-beta - aber nicht für alle!) wenn Sie bewegen sich zwischen zwei sicheren Seiten enthalten beide das keep-alive-IFRAME, Sie bekommen so etwas wie diese Abfolge von Ereignissen:
0s: laden page1.html - enthält keepalive.html Zeitpläne eine Aktualisierung auf 15s 5s: klicken Sie auf der Seite 2 link laden page2.html - enthält keepalive.html Zeitpläne eine Aktualisierung auf 20s 15s: refresh von Frames auf Seite1 passiert; mixed-content-error-box angezeigt
Zu diesem Zeitpunkt werden die Fehlermeldung "Diese Seite enthält sowohl sichere als auch nicht sichere Inhalte" im browser angezeigt wird.
page1.html:
<html><head><title>Page 1</title></head><body>
<h1>This is Page 1</h1>
<p><a href="page2.html">Go to Page 2</a></p>
<iframe src="keepalive.html" width="500" height="200" />
</body></html>
Seite 2 ist das gleiche, aber sagt Seite 2, und links auf Seite 1, statt.
keepalive.html:
<html><head>
<meta http-equiv="refresh" content="15" />
</head><body>
<h2>This is the keep alive</h2>
</body></html>
In allen Browsern die ich getestet habe, das ich haben dafür gesorgt, dass die internet-zone hat die Erlaubnis zu tun, ein meta-refresh und eine Eingabeaufforderung festgelegt ist, bei der Anzeige von gemischtem Inhalt. Ich habe gelesen, alle Seiten darauf hindeutet, dass Sie brauchen, um einen src="" - tag auf den IFRAME oder IE halten es für unsicher - by-design hat es eine src-tag, das ist der keep-alive-Seite.
Wenn Sie sitzen auf Seite 1 für immer, der IFRAME aktualisiert in Ordnung. Der Fehler zeigt nur die erste Zeit nach der änderung auf Seite 2.
Ich bin auf der Suche nach einem Weg, um dieses Update mit minimalen Veränderungen: eine bessere Methode für die keep-alive ist, sich eine Steuern & automatisch-erfrischende Bilder, die ich zu untersuchen für zukünftige Versionen. Ein möglicher workaround ist, die ich im Auge habe, ist, dass der Inhalt von dem IFRAME eine regelmäßige XMLHttpRequest an den server, sondern einen meta-refresh. Ein einfacher bugfix wäre noch besser.
Update: ich habe markiert Gewähren Wagners Antwort als richtig, denn es führt mich zum eigentlichen problem: auf der Lenovo-Kennwort-Manager-add-on, CpwmIEBrowserHelper, der diesen Fehler verursacht. Dieser fein säuberlich erklärt, warum einige Leute dieses problem haben und andere nicht, die meisten Leute, die ich fragte, haben die ThinkPads. Deaktivieren Sie die Erweiterung macht das refresh-problem Weg.
Als wir, kann nicht dazu führen, dass jeder, der möglicherweise die Anwendung verwenden, um dieses problem zu beheben, gehen wir mal mit einem javascript-timer und aktualisiert die Fenster " Speicherort aktualisieren keepalive.html Seite wie folgt Aussehen:
<html><head>
<meta http-equiv="pragma" content="no-cache">
</head><body>
<h2>This is the keep alive</h2>
<script type="text/javascript">
setTimeout ('ReloadPage()', 15000 );
function ReloadPage() {
window.location = window.location;
}
</script>
</body></html>
InformationsquelleAutor crb | 2009-04-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe versucht, Ihre test-Seite in IE 6, 7 und 8 (release) und konnte das problem nicht reproduzieren.
Einige Dinge zu überprüfen:
https
. Auch, stellen Sie die Abfrage-string zukeepalive.html
einzigartig für die Seiten 1 und 2, so können Sie überprüfen, welche Anforderung ist, die den message-box angezeigt werden.Ehrlich gesagt, ich bin besorgt über die Natur des Problems. Du sagst, dass der Besuch von Seite 1 legt einen timer zum aktualisieren der iframe, dann Sie zu navigieren Weg von dieser Seite, und die refresh-tritt dennoch die Zeit bezeichnet, obwohl Sie haben navigiert Weg von der Seite, die den iframe enthält, die den META-REFRESH. Navigieren Weg von der Seite 1 soll stoppen Sie den timer auf die ursprüngliche iframe aktualisieren. Das ist, warum ich glaube, Sie sollten Fiddler (und eine einzigartige
keepalive.html
query-string), um zu überprüfen, ob es die Anfrage aus dem iframe auf Seite 1 das problem verursacht.Können Sie näher erläutern, warum die add-ons Tipp führen Sie zur Antwort? Ich bin mal gespannt.
Ich begann den IE ohne add-ons, und das problem nicht manifestieren. Habe ich dann deaktiviert, halb-und binary-gehackt meinem Weg durch den Rest, bis ich einen gefunden, der das Problem verursacht.
Danke. Freut mich zu hören das problem ist gelöst.
InformationsquelleAutor Grant Wagner
Versuchen Sie, den iframe mit der vollständigen URL, beginnend mit https, ich habe über diese in der Vergangenheit, ich denke, das war die Lösung.
InformationsquelleAutor stonedonkey