Javascript Get Cookie Issue
У меня проблемы с настройкой файлов cookie для домена и субдомена этого домена. Хотя я не могу разглашать доменное имя, я могу, однако, назвать его "domain.com" и предоставить код.
Я пытаюсь добиться следующего: посетитель заходит на domain.com и определенные куки установлены. Когда он достигает определенной страницы на subdomain.domain.com, эти куки должны быть прочитаны.
Если пользователь попадает прямо на страницы субдомена, куки-файлы устанавливаются правильно, и все в порядке, но если он попадает на страницы основного домена, куки не устанавливаются. Вы можете мне помочь?
Опять же, я должен подтвердить, что приведенные ниже коды работают, когда субдомен устанавливает файлы cookie, но файлы cookie не устанавливаются при посещениях основного домена (и да, сценарий также находится на страницах основного домена). Я проверил с firebug и firecookie.
Это мой код для установки куки:
function setCookie(c_name,value) {
var now = new Date();
var time = now.getTime();
time += 3600 * 1000;
now.setTime(time);
var c_value=escape(value);
document.cookie=c_name + "=" + c_value + '; path=/;domain=.domain.com';
}
И это мой код получения значений cookie:
function getCookie(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);
}
}
}
2 ответа
Какая ошибка новичка с моей стороны. Функция set cookie была вызвана на ранней стадии процесса и не установила никаких файлов cookie вообще.
Благодаря Джиму Дэвису, ваша настойчивость заставила меня присмотреться к моему коду.
Ваши пользователи высшего уровня вообще используют поддомен? Даже "www"?
Если нет, то я думаю (и, если честно, это предположение), проблема может заключаться в том, что вы указали, что cookie действителен во всех поддоменах, но НЕ в домене верхнего уровня. Попробуйте убрать предыдущую "точку".
Например, если ваши пользователи нажимают " http://domain.com/", то я не думаю, что будут возвращены файлы cookie, установленные для ".domain.com". С другой стороны, если они нажимают "www.domain.com", тогда "www" - это просто еще один поддомен, и все это должно работать.
Есть смысл?