在IE 11上,表单/ JavaScript无法正常工作,出现DOM7011错误。

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

DOM7011: 此页面上的代码禁用了后退和前进缓存。有关更多信息,请参见:http://go.microsoft.com/fwlink/?LinkID=291337.

有人知道如何解决这个问题吗?什么是缓存,为什么会对表单造成影响?我看到其他人也有类似的投诉。
9个回答

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

当我的网页发送“Cache-Control: public, max-age=0”时,我得到了这个。我猜这是因为 max-age=0 - trysis
40
什么是解决方案? - Irfan Y
4
这个答案是对问题的解释,但并未提供解决方案。 - Suhas Kulkarni
服务器正在发送Cache-control头,因此最好的解决方案是更改服务器。其次,您可以尝试对相同内容进行不同的请求。例如,在每个链接后添加"?random=" + Math.random()。 - Nathan Strutz

1
我曾经遇到过完全相同的错误,也是在使用IE11时发生的。在我的情况下,当用户点击位于<form>标签内部的<button>元素时,出现了这个问题。
通过将<button>放置在<form>标签之外,问题得以解决。

1

我之前也遇到了同样的问题。 我清除了IE浏览器缓存/浏览历史记录/cookie并重新启动IE。在清除缓存后它可以正常工作。

你可以试一下。 :)


1

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


0
在我的情况下,这个异常是由于在启用SSL的网站上进行了不安全的ajax调用引起的。具体来说:我的URL是'http://...'而不是'https://...'。我只需将其替换为'//...'
对我来说,这个错误是误导性的,希望这可以帮助任何在搜索相同错误后来到这里的人。

0

我在Internet Explorer上遇到了类似的问题,也收到了相同的错误编号。罪魁祸首是一个HTML注释。我知道这听起来难以置信,所以这里是故事。

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

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

但是,真正的问题是一个注释。每当您使用Google Chrome下载Web页面时,Chrome浏览器会在页面顶部插入一个注释,其中包括您获取Web页面的位置的URL。在我删除了每个6个页面顶部的注释后,所有链接都正常工作(尽管我在控制台中仍然收到相同的错误消息。)


0

当我点击一个HTML时,遇到了这个问题,通过添加type = "button"属性来解决。


0
我遇到了相同的控制台警告,当一个ajax请求正在执行时,我的表单也不能正常工作。
我通过以下响应头在服务器的ajax调用上禁用了缓存:
Cache-Control: no-cache, no-store, must-revalidate
Expires: -1
Pragma: no-cache

此后,表单已经可用。请参考您所使用的服务器语言(C#、PHP、Java等)中有关如何添加响应头的说明。


-5

前往

工具 > 兼容性视图设置 > 取消选中“在兼容性视图中显示内部网站”选项

点击关闭。页面可能会重新加载,然后您的问题将得到解决。


1
如果您找不到“工具”,请通过右键单击IE11窗口的标题启用命令栏。 - Sergiy Seletskyy
我尝试了这个来调试,但警告仍然出现。 - BBaysinger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接