【问题标题】:Cookies on data refresh via AJAX [duplicate]通过 AJAX 刷新数据的 Cookies [重复]
【发布时间】:2013-06-30 20:31:20
【问题描述】:

我有一个第一次加载的页面,通过 AJAX 定期更新(每隔几秒)。在 AJAX 处理页面上,我想更新用户的 cookie 以反映“上次访问时间”(从而将数据标记为已读/未读)。设置标题后是否仍然使用“setCookie”?还是我必须通过 JS 更新 cookie?

谢谢!

【问题讨论】:

    标签: php ajax cookies


    【解决方案1】:

    您需要在设置 cookie 之前阻止任何输出。基本上你可以重新编写 php 命令或尝试使用ob_start 来阻止输出,这样你就可以在输出任何 html 之前设置 cookie。

    【讨论】:

      【解决方案2】:

      一种方法是使用 AJAX 调用 php 脚本。您可以制作 php 脚本来设置 cookie。我是这样做的:

      HTML:

      <html>
      <head>
          <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
      </head>
      <body>
          <script>
              function changeCookie(id)
              {
                  data = 'id='+id;
                  $.ajax({
                      type: "POST",
                      url: 'test.php',
                      data: data,
                      dataType: 'html'
                      });
              }
          </script>
      </body>
      

      PHP:

      <?php
          $id = $_POST['id'];
          setcookie("TestCookie", $id, time()+3600);  /* expire in 1 hour */
      ?>
      

      每当您调用 changeCookie 函数时,它都会将您的 cookie 设置为您在函数参数中提供的值。您可以修改此脚本以将名称和到期日期发送到 PHP 脚本。

      另一种方法可能是没有 PHP,只需计划 javascript。你可以找到更多关于here的信息。

      【讨论】:

        猜你喜欢
        • 2011-07-22
        • 1970-01-01
        • 2019-04-19
        • 1970-01-01
        • 2020-10-15
        • 1970-01-01
        • 1970-01-01
        • 2012-06-03
        • 1970-01-01
        相关资源
        最近更新 更多