在Node.js api中提供JSON响应时防止caching

我有一个移动应用程序将定期从Node.js服务器拉一个JSON文件。

JSON响应是用随机值dynamic生成的。 它不应该被caching。

我试图阻止caching:

app.get('/important.json', function(req, res) { res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); res.setHeader("Pragma", "no-cache"); res.setHeader("Expires", 0); res.json(...); }); 

但是,当移动应用程序重新加载JSON时,它仍然从服务器(从Fiddler观察)获得304 Not Modified响应。

在这里输入图像说明

有人可以build议反高速caching是否正确完成? 这是由于etag? 如果etag是问题,我可以专门为这个api /端点禁用etag吗?

首先,尝试禁用etag:

 app.set('etag', false); 

其次,你可以拦截所有对放在所有其他处理程序顶部的中间件节点的请求。

 app.use(function(req, res, next) { //delete all headers related to cache req.headers['if-none-match'] = ''; req.headers['if-modified-since'] = ''; next(); });