1

我在 JavaScript 中创建了一个 cookie。我可以看到并使用该文件中的 cookie。我无法在同一域的另一个页面中查看和使用相同的 cookie。可能是什么问题呢?

这是代码

// Code for set Cookie

        // Code for set Cookie
    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 to call setcookie. In this function I cookie is adding successfully and I can alert the value of the cartcounter cookie. It will be increment one by one for each click 
    function makeSure(skey,name){
                    var cartcounter=getCookie("cartcounter");
                    cartcounter=parseInt(cartcounter);
                    chk=0;
                    for(var i=1;i<=cartcounter;i++){
                        var ckey = getCookie(i+"_skey");
                        if(ckey==skey){
                            chk++;
                        }
                    }
                    if(chk==0){ 

                        cartcounter=cartcounter+1;
                        setCookie("cartcounter",cartcounter,365);   
                        setCookie(cartcounter+"_skey",skey,365);
                        setCookie(cartcounter+"_name",name,365);
                        setCookie(cartcounter+"_val",$("#cnt_"+skey).val(),365);
                        alert(name+" added to your cart successfully.. ");
                    }
                    else
                        alert("You have already added "+name+" item to cart ");


            }
    // This is the code in another page to view the cookie. But it show only 0
            var cartcounter=getCookie("cartcounter");
            alert("Counter="+cartcounter);
4

1 回答 1

2
  1. 设置你的path. 如果您创建的 cookie 在一个路径/features/feature1/中,并且您尝试从不同的“文件夹”访问它:/items/item1/它将不存在。
    因此path/如果您希望它可以在同一域中的每个页面上访问,则设置为,无论它位于路径层次结构中的哪个位置。

  2. 说到域,如果您的第一页打开www.mysite.com,而您的第二页打开shop.mysite.com或其他子域,那么 cookie 也将不可用,因此将您的域设置为等于.mysite.com,这将覆盖该域所在的任何页面_____.mysite.com

如果您永远不需要#2,那么请不要费心设置域。
但是,如果您确实使用过子域,请记住这一点。

于 2012-10-01T04:24:14.757 回答