【发布时间】:2016-09-29 10:38:53
【问题描述】:
我正在开发一个带有 C# 后端 API 的 AngularJs 1.3.7 前端应用程序。最近刚刚将缓存添加到服务器端,这现在引起了头疼。由于 Get 请求在执行一次请求后设置了缓存控制标头,因此浏览器会缓存 API 响应。缓存数据后,在向服务器控制器发出任何 POST/PUT/DELETE 请求后,后端正确地使缓存无效。问题是浏览器(在我的情况下为 Chrome)仅在对同一 URL 发出请求(POST/PUT/DELETE)时才会刷新缓存。
工作示例序列:GET www.bestGames.com/games -> POST www.bestGames.com/games -> GET www.bestGames.com/games(缓存已清除,数据已正确重新更新)。
不工作:GET www.bestGames.com/games -> PUT www.bestGames.com/games/20 -> GET www.bestGames.com/games(不更新缓存,显示旧数据)。
不工作:GET www.bestGames.com/games -> PUT www.bestGames.com/games?id=20 -> GET www.bestGames.com/games(不更新缓存,显示旧数据)。
工作:获取 www.bestGames.com/games -> PUT www.bestGames.com/games -> 获取 www.bestGames.com/games(缓存已清除,数据已正确重新更新)。
那么,除了:
- 向 GET 请求添加类似“?=random”的内容
- 向 www.bestGames.com/games 添加额外请求,以清除浏览器缓存。
【问题讨论】:
标签: c# .net angularjs google-chrome caching