gpt4 book ai didi

javascript - 新的 session cookie 直到下一个服务器请求才提供

转载 作者:行者123 更新时间:2023-11-28 09:43:10 25 4
gpt4 key购买 nike

大家好,我正在 Codeignitor 中开发一个应用程序。内容根据三个选择标签进行更新。第一个城市填充该城市的地点选择标签,同时使类别选择标签可见。已成功设置一堆 ajax 调用。内容根据ajax调用进行更新。现在我点击内容链接来查看内容。成功......但是当我点击浏览器的后退按钮时,我弄乱了选择标签。所以后来我意识到我需要一个 session 变量,以便当用户点击浏览器的后退按钮时我可以让他保持在相同的选择标签阶段。我现在能够成功存储 session (比如说城市)。然后我用了

$(document).ready(function () {
$city="<?php echo $this->session->userdata('city'); ?>";
alert($city);
});

检查一切是否正常。现在的问题是洛杉矶(LA):1伦敦:2

场景1:我选择 LA,然后查看加载的内容,单击查看内容,然后点击浏览器的后退按钮,然后出现空白警报框。但如果我重新加载,我会收到带有 1 的警报

场景 1 之后的场景 2:我选择洛杉矶,然后伦敦查看内容,然后回来,我在警报框中看到 1。我重新加载在警报框中看到 2 的页面所以我深入研究了这个link并找到了问题的原因...看起来刷新的 session 仅在下一个服务器请求时提供。正如您所看到的,我的问题是我想要更新的信息,以便我可以让我的用户保持在他们停止时的相同状态。

关于如何解决这个问题有什么建议吗?

最佳答案

这就是 cookie 的工作原理。它们随客户端的请求一起发送。

解决方法是手动设置 $_COOKIE 变量:

setcookie('yourcookie', 'something', time()+3600, '/', 'http://example.com', false, true);
$_COOKIE['yourcookie'] = 'something';

// yay I can now access it right away
echo $_COOKIE['yourcookie'];

更新

现在我想我误解了你的问题。您在使用浏览器后退按钮时似乎遇到了问题?那是对的吗?如果是这样,您将始终获得页面的先前状态,并且 cookie 确实不会被设置(因为它将从浏览器缓存中检索它)。我认为这有效的唯一方法是通过一些脚本(即 JS)刷新页面,但这会很烦人。或者通过对服务器的 AJAX 调用(新请求)检索 cookie 值。

关于javascript - 新的 session cookie 直到下一个服务器请求才提供,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12130319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com