我正在尝试提供可缓存内容,具体取决于它是否是ajax请求。PHP/Ajax“Vary:X-Requested-With”不适用于我!
场景:
小PHP脚本 “/test.php” 提供一些HTML的输出,并设置以下标题:
Expires Wed, 23 Feb 2011 13:30:06 GMT
Cache-Control public, max-age=60
Vary X-Requested-With,Accept-Encoding
的输出取决于$_SERVER['HTTP_X_REQUESTED_WITH']
状态。
当我的Firefox指向Url时,我得到输出,而对于下一个分钟,我从浏览器缓存中得到相同的结果,而不是击中服务器。好的,到目前为止。
当我通过XMLHttpRequest
(与X-Requested-With: XMLHttpRequest
标题)请求相同的资源时,我的Firefox不会请求服务器,但会提供Cache的(错误)响应!
对于其他方式,它是相同的。资源上的Ajax-Call会填充缓存,并且后续的浏览器请求会缓存来自缓存的(错误)响应。
有没有人有这方面的经验?我认为这应该是一个普遍的问题 - 根据是否使用ajax提供内容(在同一个URL上)。
问候,ILJA
Firefox甚至不发送初始Ajax请求? – Gumbo 2011-04-16 19:38:00