来自RFC 2616,第 9.5 节(POST):
对此方法的响应是不可缓存的,除非响应包含适当的 Cache-Control 或 Expires 标头字段。
什么是合适的标题?
背景:服务器响应以下标头,我担心响应可能会被缓存。示例响应标头:
Cache-Control:max-age=2592000, public
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:22
Content-Type:application/json
Date:Sun, 20 May 2012 13:46:06 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive:timeout=15, max=100
Pragma:no-cache
Server:Apache/2.2.22 (Amazon)
Vary:Accept-Encoding,User-Agent
X-Powered-By:PHP/5.3.13
发布请求是使用 jQuery 的$.ajax
函数从 JavaScript 发出的,cache
设置为false
. 但是,jQuery 忽略了该选项。引用截至 2012-05-20 CEST 的文档:
使用 POST 获取的页面永远不会被缓存,因此 jQuery.ajaxSetup() 中的缓存和 ifModified 选项对这些请求没有影响。
更新
难道是jQuery的文档是错误的?请参阅我在 jQuery 论坛中的相关主题。