[英]Why does the browser not cache a 301 within an AJAX-request?
这是XMLHttpRequest:
$.ajax({
method: "get",
url: "getPage.php",
data: $data,
dataType: 'json',
timeout: 2000,
success: function(result) {
handleContent(result);
}
});
这是getPage.php?data = data
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
header("Cache-Control: max-age=" . $offset . ", public");
header("HTTP/1.1 301 Moved Permanently");
header("Location: $location);
这是$ location:
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
header("Cache-Control: max-age=" . $offset . ", public");
print $print;
客户端浏览器正确缓存$ location。 但是,它不会将重定向缓存在getPage.php?data = data中
每次调用ajax请求时,它都会请求GET getPage.php?data = data。
我希望它改为自动获取$ location(或者尝试GET $ location并从缓存中获取页面)。
这不是301永久重定向的目的吗? 创建由浏览器缓存的重定向(当然还有一些代理,搜索引擎等)?
请不要怀疑我为什么选择这种方式。 我有这个理由,我不会在这里讨论。 我想要的只是一个答案,可能是一个解决方案,该方案可以缓存301重定向,从而在第一个请求之后根本没有GET请求。
提前致谢!
编辑 :现在(2013年11月),大多数浏览器都执行缓存重定向,请参阅Browserscope (“缓存重定向”测试),但在提出问题时却没有。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.