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