图像无法在IE中加载DOM:7009错误(无法解码)在控制台中

Rob*_*ick 39 html javascript internet-explorer dom

当在IE中的单个页面上加载许多图像时(在IE11中再现),其中一些图像开始无法加载,并且在控制台中具有类似于以下警告的内容:

DOM7009:无法解析URL上的图像:'[some unique url]'.

当我查看网络流量时,似乎从服务器收到每个这些图像的有效响应.每次都不总是相同的图像.如果我使用开发工具强制重新加载图像(例如:我更新网址以包含一些无关的url参数"&test = 1"),它会正常加载/渲染而不会出错.我用不同类型的图像(jpegs/pngs;下面包含的示例png)重现了这种行为.随着图像数量的增加,似乎更频繁地发生,并且可能与每个图像的大小有一些相关性.

有什么可能导致这种情况的想法?潜在的解决方案?任何帮助表示赞赏.

样本PNG

lor*_*let 29

看起来实际问题是在另一个Stack Overflow问题中解决的.这里的所有答案都以各种方式解决问题,但这很可能发生,因为文件不是它声称的格式.由于启用了nosniff,浏览器无法解决此问题,并尝试解码错误的图像类型.

换句话说:您的文件扩展名与实际编码不匹配

  • 哇!这个线程上的某个人实际上有一个有效的答案,如何修复而不是INSECURE变通方法!有你的第一个upvote! (2认同)

use*_*816 8

我在IIS中托管的站点中遇到此问题,原因是在父应用程序web.config中设置了X-Content-Type-Options标头,如下所示:

<system.webServer>   
 <httpProtocol>    
  <customHeaders>    
   <add name="X-Content-Type-Options" value="nosniff" />    
  </customHeaders>    
 </httpProtocol> 
</system.webServer>  
Run Code Online (Sandbox Code Playgroud)

在应用程序web.config中删除它修复它:

<remove name="X-Content-Type-Options" />  
Run Code Online (Sandbox Code Playgroud)


小智 8

我有一个类似的问题,其中一个文件在HTTP标头中报告为JPEG,但实际上是一个PNG.更改文件类型以匹配文件或删除"X-Content-Type-Options"标头可解决问题.


Raf*_*ura 6

我面临的问题是类似的.我有一个Java Web应用程序,它通过Servlet请求显示文档的页面和缩略图,它响应浏览器发送PNG图像.就像@ user1069816所说,响应是通过一个标题来到达,导致问题"无法解码图像":

X-Content-Type-Options: nosniff
Run Code Online (Sandbox Code Playgroud)

在我的例子中,这个标题是由Spring Security引入的.此外,这是Internet Explorer避免XSS攻击安全机制,在响应时禁用此标头的最快解决方案是将以下行放在Spring Security的应用程序上下文文件中,headers部分:

<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>
Run Code Online (Sandbox Code Playgroud)

此问题仅发生在Internet Explorer 11上.不在Chrome或Firefox中.


iva*_*ese 6

我也遇到过这个错误——IE 11.0.9600.18059。根据我的测试,这几乎可以肯定是由于选项卡消耗的内存量(例如:添加额外的 DOM 元素会增加内存使用量)——不要与通过网络加载的数据量混淆。

使用内存分析器,我发现一旦内存使用量达到 1.5GB 左右的上限,就会发生错误。这导致了以下奇怪之处:

  1. 一些图像会被加载,但不会渲染。它们会显示为页面中的空白区域(具有正确的尺寸),就好像图像已设置为visibility: hidden.
  2. 一些图像将被加载,但无法解码。它们会显示为带有 X 的小黑框。这些图像还会在控制台中显示 DOM7009 错误。
  3. Flash SWF 将显示为黑框。
  4. 其他随机怪异。

每次我重新加载页面时,不同的图像/SWF 都会受到影响。

我的解决方案是简单地调整页面的设计方式,这样就不会导致 IE 消耗尽可能多的内存。


小智 0

我在 IE11 上经常遇到同样的问题,但我无法确定是什么原因造成的。然而,它在 JavaScript 崩溃后就开始发生。我不是 imgur 问题,而是 IE11 问题。

我能够解决该问题的唯一方法是使资源管理器崩溃并重新加载或重新启动。