Файл cookie Javascript: файл cookie не может быть получен со страницы, в которой он установлен в IE. - PullRequest
1 голос
/ 13 марта 2012

У меня странная проблема и я получаю cookie в IE9.Это прекрасно работает в Firefox, Chrome и т. Д.

Я использую простой метод javascript для установки cookie.Я устанавливаю путь, чтобы быть "/ Феникс".В других браузерах (например, FF & Chrome) у меня нет проблем с получением значения cookie, независимо от того, является ли путь URL-адреса "/ Phoenix", "/ Phoenix /" и т. Д.

Однако в IE (в частности, 9, но он ведет себя идентично в более старых версиях) Я не могу получить куки, когда мой URL-путь "/ Phoenix" - это именно то, что он установлен, если я изменю URL-путь на "/ Phoenix /", он будет работатьхорошо.

Когда я использую инструменты разработчика и проверяю элемент документа, когда путь 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.Может ли это быть где-то в настройках безопасности?Какие-либо предложения?

Любая помощь приветствуется!Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...