我在服务器上有一个简单的缓存机制,它设置了适当的Last-Modified
标头,并对If-Modified-Since
标头作出反应。响应标头的示例是:
Date: Tue, 17 Mar 2015 20:40:14 GMT
Last-Modified: Mon, 16 Mar 2015 09:47:28 GMT
在我导航到页面一次后,浏览器在请求中包含If-Modified-Since
标题,并且服务器正确响应304状态。
但是,当我使用jQuery执行请求时(并且行为仍然是简单的XMLHttpRequest),不会发送If-Modified-Since
标头。
重现这一点的最简单的代码是:
var xhr = new XMLHttpRequest();
xhr.open("get", "http://localhost/some/page.html", true);
xhr.send();
这种代码总是生成200响应,即使它以前是缓存的。我在Firefox 36和Chromium 41中观察到了这一点。
为什么XMLHttpRequest发起的调用中包含If-Modified-Since
标头?
答案 0 :(得分:0)
似乎这是用户错误,因为我无法重现它。