Ich habe eine Website, auf der Benutzer Bilder auf Facebook-Seiten posten können. Ich verwende ein Formular und poste es in einem versteckten IFRAME, um zu verhindern, dass der Benutzer nach dem Posten der Bilder umgeleitet wird.
Die Formulardefinition:
<form name="myform" id="myform" enctype="multipart/form-data" action="" method="POST" onsubmit="getAction(this);" target="uploader">
//....form code....//
Der Iframe:
<iframe name="uploader" width=2px height=2px style="visibility: hidden"></iframe>
Mein Problem ist, dass in My Own Internet Explorer 9, wenn ich versuche, ein Bild hochzuladen, ich diese Fehler erhalte:
SEC7111: HTTPS security is compromised by res://ieframe.dll/dnserrordiagoff.htm
SEC7111: HTTPS security is compromised by res://ieframe.dll/ErrorPageTemplate.css
SEC7111: HTTPS security is compromised by res://ieframe.dll/errorPageStrings.js
SEC7111: HTTPS security is compromised by res://ieframe.dll/httpErrorPagesScripts.js
SEC7111: HTTPS security is compromised by res://ieframe.dll/noConnect.png
SEC7111: HTTPS security is compromised by res://ieframe.dll/bullet.png
SEC7111: HTTPS security is compromised by res://ieframe.dll/bullet.png
SEC7111: HTTPS security is compromised by res://ieframe.dll/bullet.png
SEC7111: HTTPS security is compromised by res://ieframe.dll/down.png
SEC7111: HTTPS security is compromised by res://ieframe.dll/favcenter.png
SEC7111: HTTPS security is compromised by res://ieframe.dll/favcenter.png
SEC7111: HTTPS security is compromised by res://ieframe.dll/background_gradient.jpg
Und es wird noch seltsamer, als auf dem Computer meines Freundes, der dieselbe IE9-Version hat und mit demselben Netzwerk verbunden ist, der Post einwandfrei funktioniert (er funktioniert auch auf einem anderen Computer in meinem Haus und einem anderen in meinem Bruder Computer). Ich hätte sagen können, dass es sich nur um ein lokales Problem handelt, aber da diese Site viele Clients anspricht, kann ich es mir nicht leisten, diesen Fehler nicht zu verstehen. Wenn er auf meinem eigenen Betriebssystem auftritt, kann er auf anderen Computern auftreten.
Ich werde auch bemerken, dass dies funktioniert auf Chrome und FireFox ohne Problem .
Ich bin mir nicht sicher, ob es sich um ein Code-Problem handelt. Ich habe versucht, es zu googeln und sowohl Microsoft Article als auch This article gefunden. Ich habe jedoch alle IE Addons von Drittanbietern entfernt. Wir und meine Freunde sind mit demselben Router verbunden (es handelt sich also nicht um ein Routerproblem), und ich habe die neuesten Windows-Updates installiert.
Ich habe derzeit keine Ahnung, wie ich das Problem lösen soll. Ich wollte also fragen, ob einer von Ihnen ähnliche/gleiche Fehler hat. und hat vielleicht ein paar Ideen zu Lösungen ...
Auf Anfrage kann ich gerne weiteren Code bereitstellen, aber ich wollte die Frage nicht von Anfang an mit Code füllen, da dies in den meisten Szenarien problemlos funktioniert.
Vielen Dank.
Wenn es in Ihrem Freund IE 9 funktioniert, aber nicht in Ihrem -, dann vergleichen Sie Ihre Sicherheitseinstellungen .
Vor allem der mit "Starten von Programmen und Dateien in einem IFRAME" könnte der Deal-Breaker sein, vermute ich.
Wenn dies nicht der Fall ist, versuchen Sie, jede Sicherheitsoption, die diese Option anbietet, von "Deaktivieren" auf "Eingabeaufforderung" zu setzen und zu prüfen, ob Sie Nachrichten in Ihrem IE erhalten.
Es ist am besten, dieses Problem auf Server - Ebene statt unter Client zu beheben, da wir nicht erwarten können, dass alle anderen Websitebesucher ihre IE - Einstellungen ändern, nur damit sie Ihre Website verwenden können.
Wie Sie bereits erwähnt haben, wird dies in der Tat von Ihrem iframe in der https - Umgebung verursacht. IE9 ist hier besonders streng, daher müssen Sie es in Ihren X-Frame-Optionen definieren:
Fügen Sie folgende Zeile in der httpd.conf-Datei von Apache Web Server hinzu bzw. ändern Sie sie
Header always append X-Frame-Options SAMEORIGIN
Stellen Sie sicher, dass es nicht auf DENY
..__ eingestellt ist. Starten Sie den Webserver neu
Lass es mich wissen, wenn das hilft
Für mich war dies auf die Site zurückzuführen, zu der ich keine gültige HTTPS-Zertifizierung hatte. Ich hatte eines für die Entwicklung erstellt, das von Windows nicht als vertrauenswürdiges Zertifikat erkannt wurde.
Diese exakten Fehler hatten wir gestern in der IE11-Konsole. Wenn Sie den Anforderungsheader in IIS für den iframed-Inhalt (die Seite, die als src des iframes verwendet wird) einstellen, wird P3P = NOI geholfen. Wir sind dort angekommen, indem wir die Request-Header basierend auf Georges Antwort oben geprüft haben.
Das Szenario unterschied sich in der Art und Weise, wie wir eine vom Portal generierte Nummer an den iframed-Inhalt nach Abfrageparameter übergeben. Sowohl das Portal als auch die iframed-Site führen https aus.