防止在Express JS中从缓存中获取Json响应

时间:2016-10-27 06:09:34

标签: node.js express

我正在使用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响应。

我可能做错了什么?

1 个答案:

答案 0 :(得分:3)

不要设置最大年龄,请尝试使用以下内容。

res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');