提交表单后如何使用清除缓存硬刷新 Internet Explorer?
How to hard refresh Internet Explorer with clear cache after form submission?
有一个网页与网络服务器交互以更改活动目录中的值。
在 Chrome 中访问时,我可以更改数据并在表单提交后显示新值。同时在 Internet Explorer 中它没有。数据修改本身发生,所以当我在 IE 中更改某些内容并在 Chrome 中刷新页面时,它会显示新值。但在 IE 中我确实按下了 F5 和 Control+F5,它仍然显示旧值。我尝试在提交表单之前使用 location.reload(true);
,但同样如此。
只有当我关闭 IE-window 并重新启动它时它才会显示新值。
如何硬重置 IE 页面并在表单提交后检索实际值?我怎样才能禁止 IE 向缓存写入内容或清除缓存?
这里的问题是IE
会默认缓存api结果。
例如,您有一个 API return 用户个人资料,页面显示 API 获取的数据。更新用户配置文件并重新进行提取后,api 应该会 return 新数据。它在 Chrome
和其他浏览器中按预期工作,但是,IE
将 return 第一次获取的旧数据。第二次提取未到达服务器,因为 IE
浏览器 return 立即编辑了旧数据。
如何修复?
你可以添加一些 cache-control
http header 来明确指示浏览器不要缓存它,这可以通过将 Cache-Control
http header 设置为 no-cache
值。
如果你使用koa js
你基本上可以这样做:
ctx.res.setHeader('Cache-Control', 'no-cache')
有一个网页与网络服务器交互以更改活动目录中的值。
在 Chrome 中访问时,我可以更改数据并在表单提交后显示新值。同时在 Internet Explorer 中它没有。数据修改本身发生,所以当我在 IE 中更改某些内容并在 Chrome 中刷新页面时,它会显示新值。但在 IE 中我确实按下了 F5 和 Control+F5,它仍然显示旧值。我尝试在提交表单之前使用 location.reload(true);
,但同样如此。
只有当我关闭 IE-window 并重新启动它时它才会显示新值。
如何硬重置 IE 页面并在表单提交后检索实际值?我怎样才能禁止 IE 向缓存写入内容或清除缓存?
这里的问题是IE
会默认缓存api结果。
例如,您有一个 API return 用户个人资料,页面显示 API 获取的数据。更新用户配置文件并重新进行提取后,api 应该会 return 新数据。它在 Chrome
和其他浏览器中按预期工作,但是,IE
将 return 第一次获取的旧数据。第二次提取未到达服务器,因为 IE
浏览器 return 立即编辑了旧数据。
如何修复?
你可以添加一些 cache-control
http header 来明确指示浏览器不要缓存它,这可以通过将 Cache-Control
http header 设置为 no-cache
值。
如果你使用koa js
你基本上可以这样做:
ctx.res.setHeader('Cache-Control', 'no-cache')