0

我有一个 PHP 应用程序,它使用 $_SESSION 全局来管理应用程序内的数据。但是,在尝试更新 $_SESSION 的值时我遇到了一个小问题,这就是我到目前为止所做的:

  1. 做东西
  2. 未设置($_SESSION['var'])
  3. 做东西
  4. $_SESSION['var']=newValue();

我这样调用php $.post()

$('#id').click(function(){
    $.post("page.php", function(data){
        //do stuff
        window.location = "goto.php";
    })
})

goto.php从 $_SESSION['var'] 中获取内容并构造一个新的 html。

但是,当网页转到goto.php它时,它会加载使用最新版本的$_SESSION['var']. 请注意,如果我刷新网页,它会加载使用新创建的新内容$_SESSION['var']

这也不是一种常规行为,有时它会在没有重新加载页面的情况下正确加载。

我在这里做错了什么?

4

1 回答 1

1

这几乎可以肯定是一个缓存问题。您可以将某些标头发送到浏览器以强制它不缓存页面,从而确保每次都重新加载。

您可以使用以下方法在 PHP 中执行此操作:

header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
header('Expires: 0'); // Proxies.

资料来源:如何在所有浏览器中控制网页缓存?

于 2012-07-06T19:30:04.060 回答