【发布时间】:2011-06-14 21:15:10
【问题描述】:
已更新:找到答案。再过 7 个小时都无法提交我自己的答案...请参阅 cmets。
我打开一个对话框如下:
url = 'edit/MyPage.aspx?appid=3&value=4&' + date.getTime();
$('#modalIFrame').attr('src', url);
$('#modalDiv').dialog('open');
iframe 有一个包含几个字段(复选框、下拉菜单、文本区域)的表单。在 Chrome 中,一切都完美无缺。在 IE 中,它会持久且烦人地缓存 very。即使 shift+refresh 也无济于事。因此,如果我打开对话框,进行更改,点击提交,然后刷新页面,所有数据看起来都是正确的。但是,当我单击编辑按钮打开对话框时,它是以前的数据(数据是使用对 WCF 服务的 ajax 调用提取的)我什至等了几个小时让我的会话过期,没有运气。
正如你在上面看到的,我尝试了一个我在这里找到的技巧来欺骗 IE 认为它是一个新页面。这行不通。我还在 iframe 中页面的 Page_Load 中添加了以下代码:
Response.Cache.SetCacheability(HttpCacheability.NoCache)
以及 HTML 的以下元标记:
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT="0">
我完全迷路了,任何想法都将不胜感激。
【问题讨论】:
-
好的,所以我不能回答我自己的问题,但是...
-
好的,我发现它是被缓存在 IE 中的 WCF 服务。对我来说似乎很奇怪,但我在 ajax 调用中添加了一个时间戳,现在它可以工作了! var date = new Date();数据:{“appid”:appid,“serverid”:serverid,“timestamp”:date.getTime()},
标签: jquery internet-explorer iframe cache-control