在IE中忽略了autocomplete ="off"?

Dav*_*all 6 forms asp.net checkbox internet-explorer autocomplete

我有一个带有复选框的表单,其"已检查"值是从数据库中的代码填充的.

想象一下,如果我有复选框1,2和3都设置为在数据库中检查.我加载页面,取消选中复选框3,然后将更改提交到数据库.现在在我的数据库中,选中复选框1和2,取消选中3.我刷新页面,它获取更新的数据库值,复选框具有正确的选中值.

这只适用于chrome和FF.在IE中,即使取消选中复选框3,将更改提交到数据库并刷新,它仍然显示为已选中.我用ctrl + f5强制刷新,但仍然没有更新.将autocomplete ="off"添加到复选框和父窗体都没有做任何事情.

Pra*_*ngh 1

这个问题已经在评论中回答了,但在答案中没有提供相关答案。我试图在这里回答这个问题,以便它对面临同样问题的所有其他用户有用。

解决方案可以是:

请求没有变化的连续 ajax 调用通常被某些浏览器视为缓存,并且此问题在IE 10. 请求的响应是HTTP 304 Not Modified,并且请求没有到达数据库。解决方案是使用ajaxSetup设置cachefalselike :

$(document).ready(function() {
  $.ajaxSetup({ cache: false });
});
Run Code Online (Sandbox Code Playgroud)

注意:这将为会话中的所有 ajax 调用设置缓存为 false。

或者

cache: false如果您不想禁用所有 ajax 调用的缓存,请特别使用ajax 调用。

$.ajax({
         ...
         cache: false,
         ...
      });
Run Code Online (Sandbox Code Playgroud)