【问题标题】:How to get cookies using js? [duplicate]如何使用 js 获取 cookie? [复制]
【发布时间】:2011-11-02 13:27:01
【问题描述】:

可能重复:
What is the “best” way to get and set a single cookie value using JavaScript
Read cookies with JavaScript

当我在 php 中 print_r( $_COOKIE ); 时,我得到以下结果。

Array ( [filters] => Array ( [cat] => 1 ) ) 

现在我想使用 JavaScript 从 cookie 中获取 cat 的值。

我试过这个:

 function getCookies() {

      var pairs = document.cookie.split(";");
      var cookies = {};
      for (var i=0; i<pairs.length; i++){
        var pair = pairs[i].split("=");
        cookies[pair[0]] = unescape(pair[1]);
      }
      return cookies;
}

当我警告从上述函数返回的结果时,我得到一个[object Object]。但我不知道如何从该对象中获取 cat 的值。

如何从返回的对象中知道cat 的值?

谢谢

【问题讨论】:

  • @Widor:我已阅读但我想深入研究 cookies 数组。我已经尝试过了,但得到了undefined
  • @Student 这是一个完全不同的问题。如果您想弄清楚为什么您的代码不起作用,请不要问“我该怎么做X?”问一个关于您的代码的问题。
  • 不要在没有指出我的问题中的错误和没有给我时间使用 Edit 选项解释我的问题的情况下这么快就结束问题..

标签: javascript cookies


【解决方案1】:

document.cookie。您可能还想阅读Quirksmode – Cookies


编辑重新 OP 编辑​​:

当我警告从上述函数返回的结果时,我得到一个 [object Object]。但我不知道如何从该对象中获取 cat 的值。

如何从返回的对象中知道 cat 的值?

问题在于 alert() 无法调试。 传递给 alert 的任何内容都会转换为字符串,但对象没有非常有用的 toString() 方法。改用真正的调试器(和console.log() 而不是alert())。

How can I debug my JavaScript code?

【讨论】:

    【解决方案2】:

    我相信 Google 搜索会比 SO 帖子更好地为您服务。话虽如此,下面的代码是我Googled "javascript get cookie" 时出现的几十个示例之一。

    function getCookie(name) {
        var dc = document.cookie;
        var begin = dc.indexOf(name);
        var end = (dc.indexOf(";", begin) == -1) ? dc.length : dc.indexOf(";", begin);
    
        return unescape(dc.substring((begin + (name.length + 1)), end));
    }
    

    【讨论】:

    • 我已经尝试过这些,但是我的问题中定义的这个特定的 Cookie 数组得到了undefined
    • 如何调用上面的函数来获取cookie数组中cat的值?
    猜你喜欢
    • 2020-05-24
    • 2018-09-15
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 2018-11-16
    • 2014-01-22
    • 2017-02-19
    相关资源
    最近更新 更多