XMLHttpRequest调用不包括If-Modified-Since标头

时间:2015-03-17 21:03:42

标签: javascript ajax http xmlhttprequest

我在服务器上有一个简单的缓存机制,它设置了适当的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标头?

1 个答案:

答案 0 :(得分:0)

似乎这是用户错误,因为我无法重现它。