有一个网页与Web服务器交互以更改活动目录中的值。
在Chrome中访问时,我可以更改数据,并在提交表单后显示新值。同时,在Internet Explorer中却没有。数据修改本身会进行,因此当我在IE中更改某些内容并在Chrome中刷新页面时,它会显示新值。但是在IE中,我确实按了F5和Control + F5,它仍然显示旧值。在表单提交之前,我尝试使用location.reload(true);
,但相同。
仅当我关闭IE窗口并重新启动它时,它才会显示新值。
如何在表单提交后硬重置IE页面并检索实际值?如何禁止IE向缓存写入内容或清除内容?
答案 0 :(得分:1)
这里的问题是IE
将默认缓存api结果。
例如,您有一个API返回用户配置文件,并且该页面显示了API提取的数据。更新用户配置文件并重做提取后,api应该返回新数据。它可以在Chrome
和其他浏览器中正常运行,但是,IE
将返回第一次获取的旧数据。由于IE
浏览器立即返回了旧数据,因此第二次获取未到达服务器。
您可以添加一些cache-control
HTTP标头,以明确指示浏览器不缓存它,这可以通过将Cache-Control
http标头设置为no-cache
的值来实现。
如果您使用koa js
,则基本上可以这样做:
ctx.res.setHeader('Cache-Control', 'no-cache')