首页 文章

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

提问于
浏览
0

我正在使用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 回答

  • 3

    而不是设置最大年龄尝试使用以下内容 .

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

相关问题