it-swarm.com.de

Bilder können nicht geladen werden IE mit DOM: 7009-Fehler (kann nicht decodiert werden) in Konsole

Wenn Sie viele Bilder auf eine einzige Seite in IE laden (in IE11 wiedergegeben), werden einige von ihnen möglicherweise nicht geladen und weisen eine ähnliche Warnung wie die folgende Warnung in der Konsole auf:

DOM7009: Bild kann nicht unter URL dekodiert werden: '[einige eindeutige URL]'.

Wenn ich mir den Netzwerkverkehr ansehe, werden gültige Antworten angezeigt, die für jedes dieser Bilder vom Server empfangen wurden. Es sind nicht immer die gleichen Bilder. Wenn ich mit den dev-Tools ein Neuladen des Images erzwinge (Beispiel: Ich aktualisiere die URL, um einige überflüssige URL-Parameter "& test = 1" aufzunehmen), wird sie normalerweise ohne Fehler geladen. Ich habe dieses Verhalten mit verschiedenen Arten von Bildern reproduziert (jpegs/pngs; Beispiel png unten). Es scheint häufiger zu passieren, wenn die Anzahl der Bilder steigt, und es kann auch eine gewisse Korrelation mit der Größe jedes Bildes geben.

Irgendwelche Gedanken, was das verursacht? Mögliche Problemumgehungen? Jede Hilfe wird geschätzt.

Sample PNG

31
Rob Quick

Es sieht so aus, als würde das eigentliche Problem in einer anderen Stack Overflow-Frage behandelt. Alle Antworten hier umgehen das Problem auf verschiedene Weise, was jedoch wahrscheinlich der Fall ist, weil die Datei nicht das Format hat, von dem es behauptet wird. Da nosniff aktiviert ist, kann der Browser dieses Problem nicht umgehen und versucht, den falschen Bildtyp zu decodieren. 

Mit anderen Worten: Ihre Dateierweiterung stimmt nicht mit der tatsächlichen Kodierung überein

23
lordscarlet

Ich hatte ein ähnliches Problem, als eine Datei in den HTTP-Headern als JPEG gemeldet wurde, aber tatsächlich eine PNG-Datei war. Das Ändern des Dateityps an die Datei oder das Entfernen des Headers "X-Content-Type-Options" löste das Problem.

8
Richard Jones

Ich hatte dieses Problem in einer Site, die in IIS gehostet wurde, weil der X-Content-Type-Options-Header in einer übergeordneten Anwendung web.config wie folgt festgelegt wurde:

<system.webServer>   
 <httpProtocol>    
  <customHeaders>    
   <add name="X-Content-Type-Options" value="nosniff" />    
  </customHeaders>    
 </httpProtocol> 
</system.webServer>  

Wenn Sie es in den Anwendungen web.config entfernen, wurde Folgendes behoben:

<remove name="X-Content-Type-Options" />  
7
user1069816

Das Problem, vor dem ich stand, war ähnlich. Ich habe eine Java-Webanwendung, die Seiten und Miniaturansichten eines Dokuments durch Servlet-Anforderungen anzeigt, die auf den Browser reagieren, der PNG-Bilder sendet. Wie @ user1069816 sagte, kamen die Antworten mit einem Header an, der das Problem "Bild kann nicht decodieren" verursacht:

X-Content-Type-Options: nosniff

In meinem Fall wurde dieser Header von Spring Security eingeführt. Außerdem handelt es sich um einen Sicherheitsmechanismus für Internet Explorer, um XSS-Angriffe zu vermeiden , die schnellste Lösung zum Deaktivieren dieses Headers bei der Antwort bestand darin, dass die Kontextdatei der Anwendung von Spring Security, headers, mit der folgenden Zeile versehen wurde:

<http use-expressions="true" create-session="never" auto-config="true">
    <headers>
        <!-- this section disable put the header 'X-Content-Type-Options' -->
        <content-type-options disabled="true"/>
    </headers>

Dieses Problem trat nur bei Internet Explorer 11 auf. Nicht bei Chrome oder Firefox.

5
rfontoura

Ja, ich habe dasselbe Problem im IE11, als ich Bilder lade, die mir einen Fehler gaben. "

  • DOM7009: Bild kann nicht unter URL Decodiert werden. In allen anderen Browsern funktioniert es wie ein Zauber

Nach langem googeln kam schließlich der Schluss wie folgt:

in der Datei Web.config ::

  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="X-Frame-Options" value="Deny" />
        <remove name="X-Powered-By" />
        <add name="X-XSS-Protection" value="1" />
        <!--To resolve the user image not displaying in the chat and in the header for IE 11--> 
        <!--<add name="X-Content-Type-Options" value="nosniff"/>-->
      </customHeaders>
    </httpProtocol>
</system.webServer>

Bitte sehen Sie sich den kommentierten Code an, den ich " X-Content-Type-Options " entfernt habe und es funktioniert !!! 

3
Developer

Wenn es von Nutzen ist, habe ich dies in meiner WinJS-Anwendung gesehen, und ich glaube, es ist eine Möglichkeit, den Renderer zu melden, dass es nicht genügend Arbeitsspeicher hat (allerdings kryptisch!).

Ich sage das ist, wenn ich ein komprimiertes png-Bild lade, das heißt 500 KB, aber groß in Bezug auf die Pixelabmessungen, bekomme ich dieses Problem.

Z.B.  

Wenn ich dies mit einem 20000 x 6000-Image versuche, erhalte ich diesen Fehler sporadisch. Ich vermute, er liegt bei 20000 x 6000 x 4 (480.000.000 Bytes) oder ~ 480 MB.

Wenn ich dies mit einem 14000 x 6000 versuche, wären es ~ 336 MB, was OK erscheint und ich muss noch den Fehler bekommen.

Wenn ich dies mit einem 35000 x 20000-Image ~ 2,8 GB versuche, geschieht dies immer.

3
dougajmcdonald

Ich habe auch diesen Fehler festgestellt - IE 11.0.9600.18059. Laut meinen Tests lag es wahrscheinlich an der Menge des von der Registerkarte verbrauchten Speichers (z. B. das Hinzufügen zusätzlicher DOM-Elemente erhöht den Speicherverbrauch) - nicht zu verwechseln mit der über das Netzwerk geladenen Datenmenge.

Bei Verwendung des Speicherprofilers stellte ich fest, dass Fehler auftraten, sobald die Speicherauslastung eine Grenze von 1,5 GB erreichte. Dies verursachte folgende Verrücktheit:

  1. Einige Bilder würden geladen, aber nicht gerendert. Sie würden als leere Stelle auf der Seite angezeigt (mit den korrekten Abmessungen), als wäre das Bild auf visibility: hidden eingestellt.
  2. Einige Bilder würden geladen, aber nicht decodiert. Sie werden als kleine schwarze Box mit einem X angezeigt. Diese Bilder zeigen auch einen DOM7009-Fehler in der Konsole.
  3. Flash-SWF-Dateien werden als schwarze Kästchen angezeigt.
  4. Andere zufällige Verrücktheit.

Jedes Mal, wenn ich die Seite neu lade, wären verschiedene Bilder/SWF-Dateien betroffen.

Die Lösung für mich bestand darin, einfach die Art und Weise der Gestaltung der Seite anzupassen, sodass IE nicht so viel Speicher verbraucht.

3
ivanreese

Ich hatte dieses Problem gerade jetzt, als das Bild ~ 2.5MB (.jpg) war. Es wurde auf 540kb geschrumpft und das Problem tritt nicht mehr auf. Sieht aus, als wäre es definitiv ein IE Speicherproblem (oder kann in manchen Fällen auftreten).

Dies ist die einzige Korrektur, die für mich funktioniert hat, da ich nichts mit X-Content-Type-Options in meiner Webkonfiguration zu tun hatte.

1
Lyall

Dieser Fehler ist auf einer Seite aufgetreten, die im Wesentlichen eine Bildergalerie war, auf der jedes Bild mit voller Auflösung als Miniaturansicht geladen wurde. Das Seitengewicht betrug ca. 220 MB. Einige der Miniaturansichten wurden nicht geladen, und der Fehler "Bild konnte bei URL nicht dekodiert werden" wurde als Grund angegeben.

IE könnte jedoch jedes Bild einzeln laden, indem die URL des Bildes direkt angezeigt wird. Dies bedeutet meines Erachtens kein Problem mit dem Bildtyp/der Kodierung. Während IE11 das einzelne Bild laden konnte, konnte es jedoch nicht alle Bilder als Miniaturbilder laden (und die nicht geladenen Bilder wurden bei jeder Aktualisierung der Seite geändert).

Mein Workaround bestand darin, ein Miniaturbild mit niedriger Auflösung auf der Seite anzuzeigen (Seitengewicht auf 220 KB geändert) und den Miniaturbild-Link zum vollständigen, hochauflösenden Bild zu haben.

Es lohnt sich zu prüfen, ob Sie die Abmessungen der gelieferten Bilder und auch die Dateigröße reduzieren können.

1
pnairn

Die einzige Möglichkeit, dies zu beheben, besteht darin, diese Regel über den Browser in der Apache-Serverkonfiguration zu deaktivieren.

 BrowserMatch MSIE Explorer
 Header set X-Content-Type-Options nosniff env=!Explorer

Es funktioniert für mich, aber diese Lösung mag mich nicht. Ich würde es vorziehen, in Apache Server den richtigen MIME-Typ umzuschreiben.

Mein Problem ist, dass die URL die Zeichenfolge "captcha" enthält, ich sie jedoch nicht festlegen kann.

SetEnvIf Request_URI ^(.*)captcha$ headerpng 
Header set "Content-type image/png" env=headerpng 

Dies liest t work. It's a little frustrating. It's a url so long and I thing that **SetEnvIf** doesn Nicht bis zum Ende.

1
Pablo Luna

Ich bekomme das gleiche Problem häufig mit IE11 und kann nicht genau feststellen, was es verursacht. Dies geschieht jedoch unmittelbar nach dem Absturz von JavaScript. Es ist kein Imgur-Problem, es ist ein IE11-Problem.

Die einzige Möglichkeit, das Problem zu lösen, besteht darin, den Explorer zum Absturz zu bringen und neu zu laden oder neu zu starten.

0
drew