Javascript 对同一url的Ajax请求

Javascript 对同一url的Ajax请求,javascript,php,json,ajax,Javascript,Php,Json,Ajax,我有以下代码: 试验 试验 $(函数(){ $.get(“/”,函数(){ log(参数); }); }); 当我按Ctrl+W(关闭选项卡)然后按Ctrl+Shift+T(重新打开刚刚关闭的选项卡)时,我得到的是JSON响应,而不是HTML页面 这是为什么?当您重新打开一个关闭的选项卡时,允许浏览器重新使用给定URL的缓存数据来填充窗口。因为缓存中的数据来自ajax请求响应,所以它使用的就是这个,您可以看到JSON 这就引出了一个问题:为什么浏览器在满足ajax请求时不使用缓存中的HTML

我有以下代码:


试验
试验
$(函数(){
$.get(“/”,函数(){
log(参数);
});
});
当我按Ctrl+W(关闭选项卡)然后按Ctrl+Shift+T(重新打开刚刚关闭的选项卡)时,我得到的是JSON响应,而不是HTML页面


这是为什么?

当您重新打开一个关闭的选项卡时,允许浏览器重新使用给定URL的缓存数据来填充窗口。因为缓存中的数据来自ajax请求响应,所以它使用的就是这个,您可以看到JSON

这就引出了一个问题:为什么浏览器在满足ajax请求时不使用缓存中的HTML?浏览器使用不同的规则来决定是否使用缓存内容,这取决于他们正在做什么。在这种情况下,Chrome似乎乐于在恢复最近关闭的选项卡时重用它,而不是在执行ajax请求时

您可以通过告诉浏览器永远不要缓存响应来纠正它。这是否可取取决于您的用例

例如,将这些插入文件顶部(在打开
后,可以在Chrome版本45.0.2454.101 m(64位)中复制)
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");