Javascript 更改cookie路径

Javascript 更改cookie路径,javascript,jquery,jquery-ui,google-chrome,cookies,Javascript,Jquery,Jquery Ui,Google Chrome,Cookies,我有一个web应用程序(ASP.NETMVC3),它使用jQueryUI选项卡控件和cookie插件(如图所示) 创建选项卡时,我使用路径选项设置cookie的路径: $("#tabs").tabs({ cookie: { path: '/A/' } }); 在firefox中,这是正确的。无论url在“/A/”(例如“A/B/C”)之后是什么,选项卡控件始终正确地记住上次选择的选项卡,并在我重新加载页面时切换到该选项卡 但是,在Chrome(v21)上,浏览器偶尔会添加另一个具有不同路径的选

我有一个web应用程序(ASP.NETMVC3),它使用jQueryUI选项卡控件和cookie插件(如图所示)

创建选项卡时,我使用路径选项设置cookie的路径:

$("#tabs").tabs({ cookie: { path: '/A/' } });
在firefox中,这是正确的。无论url在“/A/”(例如“A/B/C”)之后是什么,选项卡控件始终正确地记住上次选择的选项卡,并在我重新加载页面时切换到该选项卡

但是,在Chrome(v21)上,浏览器偶尔会添加另一个具有不同路径的选项卡cookie。然后我得到了两个cookie,一个是我最初创建的路径“/A/”,另一个是我当前所在的url路径“/A/B/”。不幸的是,这个“双cookie”似乎会导致页面刷新时有时加载错误的选项卡,因为这两个cookie似乎冲突

在chrome中有没有办法防止这种行为?我尝试过几种编程解决方案(例如,如果路径包含“/A/”,则强制将路径设置为“/A/”,但由于从未到达该代码,因此chrome似乎自动执行该操作)

谢谢你的帮助

问题似乎在于chrome无法区分不同路径上同名的cookie;所以我在应用程序中的另一个选项卡控件把事情搞砸了。一旦我给饼干起了一个独特的名字,事情就开始正常运转了

我刚刚将一个应用程序推送到GitHub存储库。 似乎它在我的Chrome 21 Linux下运行良好


如果您使用的是jQuery UI>=1.7,则向您传递的cookie对象添加属性“name”,该属性具有一些唯一值,如“my Absolute unique cookie”,并查看其运行情况:

$("#tabs").tabs({
    cookie: {
        name: 'my-unique-cookie',
        // store cookie for a day, without, it would be a session cookie
        expires: 1,
        path: '/tabs'
    }
});

这个问题是否相关@说2Joe很有趣…我的问题看起来很相似。你有演示吗?如果cookie定义中未指定路径,则假定当前路径,并且该路径特定性将覆盖其他cookie。可能代码中的某些内容触发了未设置的路径。如果该值是硬编码的,那么实际值是多少?它是相对的吗?@BrianNickel正如我的代码所示,当cookie被定义时,我正在设置一个路径。实际值是相对路径,是的。那一行是我引用cookie的唯一地方,我没有设置它,也没有以任何其他方式更改它。我只是想检查一下,因为我不知道“../A”是否有效。看来你所做的正是我不希望发生的事情——我不希望chrome设置另一个cookie,我希望它接受已经存在的cookie。我还应该提到,在“A/B”中没有一组单独的选项卡,而是存在于“/A/”中的相同选项卡更新了我的屏幕截图的链接-你可以看到它运行良好-选项卡的状态在我的/tabs路径下的所有页面之间共享我不知道我做了什么不同…我做了完全相同的事情,但chrome仍在为每个新路径创建新cookie。如果你使用的是jQuery UI>=1.7,请添加属性“name”和一些独特的值,比如“my Absolute unique cookie”,传递给你的cookie对象,看看它是如何运行的。看起来是这样的!呃……我觉得自己很愚蠢……我之前注意到chrome似乎无法区分不同路径上同名的cookie:(。如果你编辑你的答案,将包含你刚才评论的内容,我将奖励赏金/马克作为答案。