Javascript Cookie:无法从在IE中设置它的页面中检索Cookie

时间:2012-03-13 18:30:08

标签: javascript cookies

我有一个奇怪的问题设置并在IE9中获取cookie。这适用于Firefox,Chrome等。

我正在使用简单的javascript方法来设置cookie。我正在设置路径为“/ Phoenix”。在其他浏览器(即FF& Chrome)上,我检索cookie的值没有问题,URL路径是“/ Phoenix”,“/ Phoenix /”等等......

然而在IE中(特别是9但它在旧版本中的行为也相同)当我的URL路径为“/ Phoenix”时,我无法检索cookie - 如果我将URL路径更改为“ /凤凰/“它会工作正常。

当我使用开发人员工具并在URL路径为“/ Phoenix”时检查文档元素时,cookie不存在,但是,当我将URL路径更改为“/ Phoenix /”时,它就存在。

以下是我的获取和设置功能:

var BasicUtils = new function ()
{
    this.GetCookie = function(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);
            }
        }
    }

    this.SetCookie = function(c_name, value, exdays, path)
    {
        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 + '; path=' + path;
    }
}

这是设置的地方:

$(window).unload(function ()
{
    var userStateCookie = UserStateManager.GetUserState();
    BasicUtils.SetCookie(mainPage.CookieName, $.toJSON(userStateCookie), 1825, mainPage.CookiePath);
});

这是加载的地方:

var cookieString = BasicUtils.GetCookie(this.CookieName);

在所有情况下,路径都设置为“/ Phoenix”。 cookie名称是相同的,当我检查或观看时,它只是在document.cookie中找不到。

同样,这似乎只是一个IE问题。它可能是某个地方的安全设置吗?有什么建议?

任何帮助表示赞赏!谢谢!

0 个答案:

没有答案