2013-04-04 2 views
0

Я устанавливаю печенья на стороне сервера, используя Java-кодне умеют читать печенье Javascript

response.addCookie("test1","test1"); 

Я нашел этот код для получения куки Использование JavaScript

(function(){ 
    var cookies; 

    function readCookie(name,c,C,i){ 
     if(cookies){ alert("all cookies"+cookies); return cookies[name]; } 

     c = document.cookie.split('; '); 
     cookies = {}; 

     for(i=c.length-1; i>=0; i--){ 
      C = c[i].split('='); 
      cookies[C[0]] = C[1]; 
     } 
     alert("required cookie"+cookies[name]); 
     return cookies[name]; 
    } 

    window.readCookie = readCookie; // or expose it however you want 
})(); 

Я называю эту функцию

alert(readCookie('test1')); 

но каждый раз, когда я получаю предупреждение как неопределенное .. Я проверил хром файл cookie и мой cookie установлены там как

localhosttest1test1/service/login 

Может кто-нибудь объяснить, почему я получаю эту ошибку?

+0

Вы получаете предупреждения, вызываемые из 'readCookie'? Что они показывают? –

+0

предупреждение («все куки» + файлы cookie); - показывает содержимое предупреждения как [объект] [объект] предупреждение («необходимый файл cookie» + файлы cookie [имя]); - ничего не показывает, кроме строкового сообщения, которое я дал –

ответ

1

Код, кажется, работает (я протестировал его в Firefox, Chrome и MSIE, создав куки-файлы с JavaScript, например, document.cookie = "test1=bla", и отобразит «необходимый cookiebla»). Может быть, cookie, который вы установили с сервера, помечен как HttpOnly, так что JavaScript не имеет к нему доступа?

+0

, так как я могу исправить это. В начале своего вопроса я показал, что как я устанавливаю cookie –

+0

, прежде чем пытаться смотреть дальше, не могли бы вы попробовать предупредить (document.cookie), чтобы отобразить * все * файлы cookie и посмотреть, присутствует ли ваш файл? – Ale

+0

это предупреждение тоже пустое –

1

У меня была аналогичная проблема, когда я отправил ссылку, которая пошла по другому пути. т.е. страница, которую я нажимала на ссылку, была /pathOne/somePlace, но ссылка перешла к /pathTwo/someOtherPlace. Файл cookie, который был написан, действителен только на /pathTwo/*. Чтобы исправить это я сделал:

Cookie testCookie = new Cookie("test1","test1"); 
testCookie.setPath (request.getContextPath()); 
response.addCookie (testCookie); 

надежда, что помогает.

Смежные вопросы