本地测试添加数据后,再次查询页面数据更新正常,但是当在服务器上相同操作却始终不更新,然后发现页面F12清除缓存后就可以查看到更新的数据,就开始怀疑服务器上和本地有什么不同,因为代码相同,而且特意在ajax调后台返回数据时设置response响应头不缓存数据:
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
然而没有什么用,然后想到本地和服务器唯一的区别就是在架构上了,因为使用了nginx,查询nginx.conf,查看location配置发现存在expires=3d,问题出在这里设置了缓存,即使响应头设置不缓存也无效。
expires 指令可以控制 HTTP 应答中的“ Expires ”和“ Cache-Control ”的头标(起到控制页面缓存的作用)
语法:expires [time|epoch|max|pff]
默认值:off
所以这里把expires去掉或者设为off,就可以了。