2013-03-12 4 views
0

У меня возникли трудности с настройкой файлов cookie для домена и субдомена этого домена. Хотя я не могу разгласить имя домена, я могу назвать его «domain.com» и предоставить код.Javascript Get Cookie Issue

Я пытаюсь достичь следующих целей: посетитель приходит на домен.com и некоторые файлы cookie устанавливаются. Когда он достигает определенной страницы на subdomain.domain.com, эти файлы cookie должны быть прочитаны.

Если пользователь приземляется непосредственно на страницах субдомена, файлы cookie устанавливаются правильно, и все в порядке, но если он попадает на главные доменные страницы, 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'; 
} 

И это мой код на получение значений куки:

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); 
     } 
    } 
} 

ответ

0

какая ошибка новобранец с моей стороны. Функция set cookie была вызвана на раннем этапе процесса и не устанавливала никаких файлов cookie вообще.

Спасибо Джим Дэвис, ваше упорство заставило меня взглянуть более внимательно на мой код.

+0

Хорошо - если это имеет значение, вы далеки от одного. ; ^) –

0

ли вы, ваши пользователи верхнего уровня использовать субдомен на всех ? Даже «www»?

Если нет, я думаю (и, честно говоря, это предположение), проблема может заключаться в том, что вы указали, что файл cookie действителен во всех поддоменах, но НЕ в домене верхнего уровня. Попробуйте вынуть предыдущую «точку».

Например, если вы нажимаете «http://domain.com», то я не думаю, что cookie, установленный для «.domain.com», будет возвращен. С другой стороны, если они нажимают «www.domain.com», то «www» - это еще один поддомен, и все это должно работать.

Имеют смысл?

+0

Ну, окончательные страницы будут только из subdomain.domain.com. Но проблема в том, что на главном домене нет cookie. Из всей литературы в Интернете, даже здесь, в stackoverflow, предыдущая точка представляется обязательной, так что субдомены могут читать файлы cookie, установленные в домене верхнего уровня. Я ошибаюсь? – ovidiua2003

+0

Ну ... главный вопрос: пытались ли вы его удалить? Насколько я знаю, запись маски - если маска найдена в конце текущего домена, это «хорошо», если не «плохо». Итак - если это правильно - «.domain.com» будет соответствовать «www.domain.com» и «sub.domain.com», но NOT «domain.com» –

+0

Нет, потому что ваше решение является частичным. Файлы cookie, вероятно, будут установлены в домен верхнего уровня, но они не будут прочитаны субдоменом. Я прав? – ovidiua2003