Images ne se chargeant pas dans IE avec DOM: erreur 7009 (Impossible à décoder) dans la console
lors du chargement de nombreuses images sur une seule page dans IE (reproduit dans IE11), certains d'entre eux commencent à ne pas se charger, et ont quelque chose de similaire à l'avertissement suivant dans la console:
DOM7009: impossible de décoder l'image à L'URL: '[une url unique]'.
quand je regarde le trafic réseau, il semble y avoir des réponses valides reçues pour chacune de ces images du serveur. Il n'est pas toujours les mêmes images à chaque fois. Si j'utilise les outils dev pour forcer l'image à se recharger (exemple: je mets à jour l'url pour inclure un paramètre d'url "&test=1"), Il se charge/rend normalement sans erreur. J'ai reproduit ce comportement avec différents types d'images (jpeg/png; exemple png inclus ci-dessous). Il semble se produire plus fréquemment que le nombre d'images aller jusqu', et peuvent également avoir une certaine corrélation avec la taille de chaque image.
avez-vous une idée de ce qui pourrait causer cela? Le potentiel des solutions de rechange? Toute aide est la apprécier.
11 réponses
il semble que le problème réel est abordé dans un autre Débordement de Pile question. Toutes les réponses ici contournent la question de diverses façons, mais cela se produit probablement parce que le fichier n'est pas le format qu'il prétend être. Parce que nosniff est activé, le navigateur est incapable de contourner ce problème, et tente de décoder le mauvais type d'image.
en d'autres termes: votre extension de fichier ne correspond pas au codage actuel
j'ai eu un problème similaire où un fichier a été rapporté dans les en-têtes HTTP comme un JPEG mais était en fait un PNG. Changer le type de fichier pour qu'il corresponde au fichier ou supprimer l'en-tête "X-Content-Type-Options" a résolu le problème.
j'ai eu ce problème dans un site hébergé dans IIS en raison de l'en-tête X-Content-Type-Options étant défini dans un web d'applications parent.config comme ceci:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Content-Type-Options" value="nosniff" />
</customHeaders>
</httpProtocol>
</system.webServer>
L'enlever dans les applications web.config fixe:
<remove name="X-Content-Type-Options" />
le problème auquel je faisais face était similaire. J'ai une application Web Java qui affiche les pages et les vignettes d'un document à travers des requêtes Servlet, qui répond au navigateur qui envoie des images PNG. Comme @user1069816 l'a dit, les réponses arrivaient avec un en-tête qui causait le problème "incapable de décoder l'image":
X-Content-Type-Options: nosniff
Dans mon cas, cet en-tête a été introduit par Sécurité Du Printemps. En plus c'est un mécanisme de sécurité pour Internet Explorer évitez les attaques XSS, la solution la plus rapide pour désactiver cet en-tête sur response était de mettre la ligne suivante sur le fichier de contexte d'application de la sécurité de printemps,headers
l'article:
<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>
ce problème ne se produisait que sur Internet Explorer 11. Pas en Chrome ou en Firefox.
si c'est utile, je l'ai vu sur mon application WinJS et je crois que c'est une façon de rendre compte que c'est hors de mémoire (bien que cryptiquement!)
Raison pour laquelle je dis c'est que si je charge un comprimé png
image qui est disons 500KB, mais grand en termes de dimensions de pixel je comprends ce problème.
E. G.
si j'essaie ceci avec une image 20000 x 6000 j'obtiens cette erreur sporadiquement, ce qui je devine est parce que c'est 20000 x 6000 x 4 (480,000,000 octets) ou ~480MB.
si j'essaie ceci avec un 14000 x 6000 ce serait ~336MB ce qui semble correct et je n'ai pas encore l'erreur.
si j'essaie ceci avec une image 35000 x 20000 ~2,8 GO cela arrive toujours.
Oui j'ai eu le même problème dans le IE11, lorsque je charge les images, c'était de me donner le message d'erreur "
- DOM7009: impossible de décoder L'image à L'URL et dans tous les autres navigateur, il fonctionne comme un charme,
après beaucoup de googling est finalement venu sur la conclusion comme ci-dessous :
sur le Web.fichier de configuration:
<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>
s'il vous Plaît voir le code commenté, j'ai enlevé le " X-Content-Type-Options" et ça marche!!!!!
j'ai rencontré cette erreur aussi bien - IE 11.0.9600.18059. Selon mes tests, c'était presque certainement dû à la quantité de mémoire consommée par l'onglet (par exemple: ajout D'éléments DOM supplémentaires augmente l'utilisation de la mémoire) - à ne pas confondre avec la quantité de données chargées sur le réseau.
en utilisant le profileur de mémoire, j'ai trouvé que les erreurs se sont produites une fois que l'utilisation de la mémoire a atteint un plafond autour de 1,5 Go. Cela a provoqué la bizarrerie suivante:
- certaines images seraient chargé, mais ne serait pas rendre. Ils apparaissaient comme un espace vide dans la page (avec les dimensions correctes), comme si l'image avait été réglée à
visibility: hidden
. - certaines images seraient chargées, mais ne se décoderaient pas. Elles apparaîtraient comme une petite boîte noire avec un X. Ces images montreraient aussi une erreur DOM7009 dans la console.
- les SWF Flash apparaîtraient comme des boîtes noires.
- autres bizarreries au hasard.
des images/SWF différents seraient affectés chacun temps j'ai rechargé la page.
la solution pour moi était de simplement ajuster la façon dont la page est conçue, de sorte que cela ne cause pas IE de consommer autant de mémoire.
j'ai connu cette même erreur sur une page qui était essentiellement une galerie d'images, où chaque image était chargée en pleine résolution comme la vignette. Le poids de la page était d'environ 220mo. Certaines vignettes ne se chargeaient pas, et l'erreur "Impossible de décoder l'image à l'url" était mentionnée comme raison.
cependant, IE pouvait charger chaque image individuellement en regardant l'URL de l'image directement, ce qui signifie qu'il n'y avait pas de problème avec le type d'image/encodage. Ainsi, alors que IE11 pouvait charger l'image individuelle, il ne pouvait pas charger toutes les images sous forme de vignettes (et les images qui n'étaient pas chargées changeaient chaque fois que la page était rafraîchie).
ma solution était d'afficher une vignette basse résolution sur la page (le poids de la page a été changé à 220kb), et d'avoir le lien de vignette vers l'image complète en haute résolution.
Il serait intéressant de vérifier si vous pouvez réduire les dimensions des images servi, et aussi la taille du fichier.
j'ai eu ce problème juste maintenant quand l'image était ~ 2.5 MB (.jpg). Réduit à 540kb et le problème ne se produit plus. On dirait que c'est définitivement un problème de mémoire IE (ou peut être dans certaines occasions).
C'est la seule solution qui a fonctionné pour moi car je n'avais rien concernant X-Content-Type-Options
dans ma configuration web.
le seul moyen que j'ai trouvé pour résoudre ce problème est de désactiver cette règle par navigateur dans la configuration du serveur apache.
BrowserMatch MSIE explorer
Header set X-Content-Type-Options nosniff env=!explorer
ça marche pour moi mais cette solution ne m'aime pas. Je préférerais réécrire dans le serveur apache le type mime correct.
mon problème est que L'URL contient la chaîne "captcha", mais je ne peux pas la définir.
SetEnvIf Request_URI ^(.*)captcha$ headerpng
Header set "Content-type image/png" env=headerpng
Ce n't work. It's a little frustrating. It's a url so long and I thing that **SetEnvIf** doesn
t le lire jusqu'à la fin.
j'obtiens la même question, souvent avec IE11 et je ne peux pas le doigt sur ce qui en est la cause. Cependant, il commence à se produire juste après JavaScript s'est écrasé. Ce n'est pas un problème imgur, c'est un problème IE11.
la seule façon que j'ai pu sortir du problème est de crash explorer et de le recharger ou de redémarrer.