【问题标题】:Using JavaScript Cookies as Global Variables使用 JavaScript Cookies 作为全局变量
【发布时间】:2012-10-04 18:50:17
【问题描述】:

我在使用 JavaScript cookie 作为全局变量时遇到问题。基本上我已经设置了带有属性 prev 的 cookie 来在 jsp 页面上存储一个值。

然后在另一个jsp页面上,我会尝试获取该值。但是我没有得到价值。我总是得到错误的值。

两个jsp页面是abc.jsp和xyz.jsp。两个 jsp 页面都有一个

这是 cookies.jsp 中的内容。和 W3school 的代码是一样的。

<script>
/*Code For Setting Cookies*/
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
  {
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x==c_name)
    {
    return unescape(y);
    }
  }
}

function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}

function checkCookie()
{
    var x=getCookie("prev");
    if (x!=null) //cookie is set
      {
        //do nothing
      }
    else 
      {
        setCookie("prev",0,365); //set to null
      }
} //end of code for setting cookies
</script>

最重要的是,我尝试使用 getCookie() 和 setCookie()。它似乎在页面上本地设置 cookie,但没有跨页面传输值。我可以知道发生了什么吗?

如果您需要更多线索,请提示我更多问题。

【问题讨论】:

    标签: javascript jsp


    【解决方案1】:

    我认为您需要在cookie中设置路径;path=/才能在所有页面中访问它。

    document.cookie = c_name + "=" + c_value+";path=/";
    

    【讨论】:

      【解决方案2】:

      根据RFC2109 § 4.3.1,cookie 的“路径”默认为生成 Set-Cookie 响应的请求 URL 的路径,直到但不包括最右边/.

      这意味着您的 cookie 设置功能中缺少 ; PATH=/

      function setCookie(c_name,value,exdays)
      {
          var exdate=new Date();
          exdate.setDate(exdate.getDate() + exdays);
          var c_value=escape(value) + ((exdays==null)
                                       ? "" : "; expires="+exdate.toUTCString())
                                      + "; path=/";
          document.cookie=c_name + "=" + c_value;
      }
      

      强烈建议不要复制/粘贴您在 Internet 上找到的代码。 相关资料很好

      【讨论】:

      • @Ferrino - 和分号 (;)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多