jQuery: $.cookie 与 PHP $_COOKIE 不同的值?(仅限网络工具包浏览器)



我使用 jQuery 来更新和加载搜索结果以及页面底部的页面导航。我有一个jQuery滑块和几个带有复选框的HTML表单,对于每个元素,我都设置了一个cookie(更改时),并使用.load()load_search.php加载内容,这在所有浏览器中都运行良好。

现在我使用相同的方法上传页面导航,我得到了非常奇怪的结果。在搜索.php中,jQuery代码为:

// PAGE NAVIGATION //
$('#page_navigation').on("click", ".page_no_item" , function(event) {
      var id = (event.target.id);
      $.cookie("cur_page_no", id);
      search_results_load();
      page_navigation_load();
      alert($.cookie("cur_page_no")); // -> returns the right cookie value
    });

另外,我检查文档准备好的值,以确保:

$(document).ready(function() {  
      alert($.cookie("cur_page_no")); // -> also returns the right cookie value
    });

在我加载的.php文件中,在 no-webkit 浏览器中,$_COOKIE['cur_page_no'] 返回正确的值,只是在 webkit 浏览器中,它总是返回 1(如果 Cookie 为空或未设置,我将其作为标准)。 var_dump()返回始终string(1) "1"在 webkit 浏览器中。

注意:我尝试不在本地主机上运行它,但问题仍然存在。另请注意,我使用完全相同的方式来读取其他cookie(例如,用于选中的复选框),并且它们返回正确的值。

任何想法或提示都非常感谢!提前非常感谢!!:)

当我遇到这个问题时,似乎在几个情况下,实际上有两个同名的饼干。其中一个是php创建的cookie,另一个是javascript创建的cookie。在其他情况下,有一个cookie,但php不会正确输出更新的值,直到发生整页重新加载。

加载新页面导致读取 cookie 所需的"新"值是有问题的。因此,处理 php 的后期 cookie 更新效果的一种方法是既使用可用的 cookie 方法,也只设置$_COOKIE['yourCookieName'] = $val

不幸的是,我必须坚持的解决方案是完全使用 JS 或 PHP 处理特定的 cookie 并坚持使用它,这是我可以让它永远不会有和读取/值更新/重复问题的唯一方法

最新更新