表单/JavaScript 无法在 IE 11 上运行并出现错误 DOM7011

Posted

技术标签:

【中文标题】表单/JavaScript 无法在 IE 11 上运行并出现错误 DOM7011【英文标题】:Form/JavaScript not working on IE 11 with error DOM7011 【发布时间】:2014-03-22 04:00:14 【问题描述】:

使用 __postback 函数的 ASP.net 表单的注册按钮在 IE 11 上停止工作,从开发者控制台显示:

DOM7011:此页面上的代码禁用了前后缓存。如需更多信息,请参阅:http://go.microsoft.com/fwlink/?LinkID=291337。

有谁知道如何解决这个问题?这个缓存是什么东西,为什么它会弄乱表格。我从其他人那里看到了类似的抱怨。

【问题讨论】:

【参考方案1】:

如果服务器发送“Cache-control:no-store”标头或发送“Cache-control:no-cache”标头,则会出现此问题。

【讨论】:

当我的页面发送“Cache-Control: public, max-age=0”时我得到了这个。我假设这是因为max-age=0 解决办法是什么?? 这个答案是对问题的解释但是解决方案? 服务器正在发送一个 Cache-control 标头,因此最好的解决方案是更改服务器。其次,您可以对相同的内容提出不同的请求。例如,将"?random=" + Math.random() 添加到您的每个链接。【参考方案2】:

我在 IE11 中也看到了完全相同的错误。在我的情况下,当用户单击 <button> 元素时发生问题,该元素位于 <form> 标签内。

通过将<button> 置于<form> 标记之外,该问题已得到解决。

【讨论】:

【参考方案3】:

我在使用window.location.reload() 时出现此错误。替换为window.location = window.location.href 解决了这个问题。

【讨论】:

【参考方案4】:

我以前也遇到过同样的问题。 我清除了所有 IE 缓存/浏览历史记录/cookie 并重新启动 IE。移除缓存后即可使用。

你可以试试。 :)

【讨论】:

【参考方案5】:

就我而言,此异常是由启用 SSL 的站点上的不安全 ajax 调用引起的。具体来说:我的网址是'http://...',而不是'https://...'。我只是将其替换为'//...'

对我来说,这个错误具有误导性,希望这可以帮助任何在搜索相同错误后登陆这里的人。

【讨论】:

【参考方案6】:

我在点击 html 时遇到了这个问题,通过添加 type = "button" 属性来修复它。

【讨论】:

【参考方案7】:

当触发 ajax 请求时,我收到了相同的控制台警告,因此我的表单也无法正常工作。

我使用以下响应标头禁用了服务器的 ajax 调用缓存:

Cache-Control: no-cache, no-store, must-revalidate
Expires: -1
Pragma: no-cache

在此之后,表单正在工作。关于如何添加这些响应标头,请参阅您正在使用的服务器语言(c#、php、java 等)。

【讨论】:

【参考方案8】:

我在 Internet Explorer 上遇到了类似的问题,并且得到了相同的错误号。罪魁祸首是 HTML 评论。我知道这听起来令人难以置信,所以这就是故事。

我在网上看到了6篇系列文章。我喜欢它们,所以我决定下载这 6 个网页并将它们存储在我的硬盘上。在每一页的顶部,有几个 HTML <a> 标签,可以让您转到下一篇文章或上一篇文章。所以我将 href 属性改为指向我硬盘上的下一个文件夹,而不是 Internet 上的下一个 URL。

在所有链接都被重定向后,当我点击链接时,浏览器拒绝显示任何网页。控制台中的消息是本页顶部提到的错误号。

然而,真正的问题是评论。每当您使用 Google Chrome 下载网页时,Chrome 浏览器都会在页面的最顶部插入一个评论,其中包含您从中获取网页的位置的 URL。在我删除了 6 个页面中每个页面顶部的评论后,所有链接都运行良好(尽管我继续在控制台中收到相同的错误消息。)

【讨论】:

【参考方案9】:

前往

Tools > Compatibility View settings > Uncheck the option "Display intranet sites in Compatibility View"

点击Close。它可能会重新启动页面,然后您的问题就会得到解决。

【讨论】:

如果找不到“工具”,请右键单击IE11窗口的标题启用命令栏 我试过这个调试,还是出现警告。

以上是关于表单/JavaScript 无法在 IE 11 上运行并出现错误 DOM7011的主要内容,如果未能解决你的问题,请参考以下文章

Django,Javascript:通过 javascript innerHtml 注入 DOM 的表单在提交时崩溃 google chrome 选项卡。在 IE 中工作

模型驱动表单 - IE11 上的输入占位符问题

Javascript - forEach()循环不能在IE11上运行

无法使用 php、javascript 在 IE 上打印 iframe,而是打印当前页面,而不是其中有打印按钮

在页面上使用 HTML Editor Extender 回发导致 IE11 中的 JavaScript 错误

Selenium WebDriver-无法在IE11中拖放元素