浏览器上的JSON缓存标头不起作用

时间:2018-07-19 07:12:27

标签: php httpresponse http-caching

我向php文件发出请求,我取回了这些标头

Access-Control-Allow-Origin: *
Cache-Control: max-age=360000, must-revalidate
Connection: keep-alive
Content-Type: application/json
Date: Thu, 19 Jul 2018 07:08:20 GMT
Expires: Mon, 26 Jul 2040 05:00:00 GMT
Pragma: no-cache
Server: nginx
Transfer-Encoding: chunked

我正在使用这些标头将php文件

header('Cache-Control: max-age=360000, must-revalidate');
header('Expires: Mon, 26 Jul 2040 05:00:00 GMT');
header('Content-type: application/json');
header("Access-Control-Allow-Origin: *");

但是每次我刷新页面时...它都不会被缓存...它总是向服务器请求响应。

有什么想法吗?我想缓存到过期日期

1 个答案:

答案 0 :(得分:1)

我认为Pragma: no-cache可能是个问题,请删除该标头

通过文档

  

Pragma:no-cache标头字段是用于以下目的的HTTP / 1.0标头:   在请求中使用。这是浏览器告诉服务器和   任何需要新版本资源的中间缓存,   服务器不要告诉浏览器不要缓存资源。一些   用户代理确实会在响应中注意此标头,但   HTTP / 1.1 RFC特别警告不要依赖此行为。