请求一个接口,发现status code = 200; 但是居然是否 from disk cache?接口也会缓存吗?请问是什么原因?
问题描述:请求接口,发现拿的还是旧数据,排查了一天,后面和前端发现请求接口只花了1ms,然后发现接口状态为:200 OK(from disk cache);
原因:运维设置nginx缓存接口数据30s,导致先从缓存拿,如果缓存没有,再从接口拿,导致一下有,一下没有;
解决方案:Nginx里面设置add_header ‘Access-Control-Max-Age’ 0;
前端自己解决方案二:
请求的headers里添加三行代码:
headers: {
'Cache-control': 'no-cache, no-store, must-revalidate',
'Pragma': 'no-cache',
'Expires': 0
}