我正在使用Express和Node构建一个Web,客户端使用RESTful API来获取Json响应以显示对象列表。
创建新对象后,应用程序应该请求更新的对象列表的新json响应。 Chrome工作正常 - 返回新的json响应状态代码200 OK。但是,IE和Edge的情况并不好 - 浏览器似乎只是从缓存中获取json响应(状态代码为304),而不是发出新请求。如果我手动清除浏览器缓存数据,一切都会好的。
我尝试了这个解决方案:using a middleware to set max-age of cache-control res.header to be 0
function headerSet(req, res, next) {
res.header('Cache-Control', 'public, max-age=0');
return next();
}
在响应头中我可以看到一致的设置生效,但IE和Edge仍然拒绝发出新的请求 - 我仍然得到304的未更新的json响应。
我可能做错了什么?
答案 0 :(得分:3)
不要设置最大年龄,请尝试使用以下内容。
res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');