Safari не сохраняет данные cookie, а IE / FF -? - PullRequest
1 голос
/ 26 августа 2011

Я застрял с этой странной проблемой в Safari. Я сохраняю данные о выборе пользователя в куки, используя javascript.

Я создаю куки, используя следующий код -

document.cookie = cookieName +
           "=" + encodeURIComponent(cookieValue) +
           "; expires=" + jsDate.toGMTString();

и его чтение с использованием -

var cookie = document.cookie;
    if(cookie.length !== 0){
         var theCookie=" "+document.cookie;
         var ind=theCookie.indexOf(" "+cookieName+"=");
         if (ind==-1) ind=theCookie.indexOf(";"+cookieName+"=");
         if (ind==-1 || cookieName=="") return "";
         var ind1=theCookie.indexOf(";",ind+1);
         if (ind1==-1) ind1=theCookie.length; 
         return unescape(theCookie.substring(ind+cookieName.length+2,ind1));}
        else { return '';}

Этот код отлично работает в Firefox и IE, но когда я получаю доступ к данным этого cookie в Safari - возвращается пустая строка. Странная вещь, если я ПОВТОРЯЮ свой выбор и пытаюсь снова, я могу получить доступ к данным. Другими словами, при первом доступе к моему сайту данные cookie недоступны, но при последующих попытках данные доступны!

Чтобы снова увидеть эту проблему, мне нужно очистить кеш, историю Safari и удалить файлы cookie из раздела «Показать файлы cookie» и снова открыть браузер.

Еще одно наблюдение - когда мне не удается прочитать данные cookie, мы можем увидеть cookie, когда смотрим в Safari> «Настройки»> «Безопасность»> «Показать cookie»

пс: столкнувшись с этим с Safari версии 4 и 5

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