Не удалось получить доступ к cookie в JavaScript по пути / - PullRequest
1 голос
/ 01 октября 2011

Я использую jQuery для доступа / установки файлов cookie. Я установил файл cookie с именем CookieNo1 по пути /.

Я установил это с помощью URL localhost:8080/audi.

Сохранено значение файла cookie, которое я проверял вручную в файлах cookie Firefox. Теперь, когда я пытаюсь получить доступ к тому же cookie, используя URL localhost:8080/audi/products, используя $.cookie('CookieNo1');

Похоже, это не возвращает значение куки. Возвращает нулевое значение. Однако когда я пытаюсь записать cookie, используя тот же URL localhost:8080/audi/products, он перезаписывает предыдущее значение cookie. Пожалуйста, помогите мне с этим вопросом.

Все, что мне нужно, это $.cookie('CookieNo1'), чтобы вернуть предыдущее значение cookie вместо нуля. Заранее спасибо

Ответы [ 2 ]

4 голосов
/ 01 октября 2011

Вы должны установить срок годности.В противном случае файл cookie удаляется в конце сеанса.В JQuery: $("CookieNo1", "value", {expires: 7}) (этот файл cookie сохраняется в течение 7 дней).

В JavaScript:

document.cookie = "CookieNo1=value; max-age=604800";

max-age устанавливает максимальное время жизни файла cookie в секундах.

РЕДАКТИРОВАТЬ

Цитата из комментариев:

@ RobW Я добавил cookie, используя jquery на странице http://localhost:8080/audi с кодом $.cookie("asdftraffic", valueToSet, { expires: 30, path: '/', secure: true }); Я пытаюсь получитьфайл cookie с URL http://localhost:8080/audi/products с использованием '$.cookie('asdftraffic');', который возвращает значение NULL.

Ваша проблема вызвана secure: true.Этот атрибут требует, чтобы cookie передавался по безопасному соединению (https).Снимите флаг secure: true, если вы не используете зашифрованное соединение.

1 голос
/ 01 октября 2011

Сначала вы установите куки:

var myvalue = 100, 2000, 300;
$.cookie("mycookie", myvalue);

Тогда вы получите печенье:

var getmycookie = $.cookie("mycookie");
    var myvalues = getmycookie.split(",");
    var firstval = myvalues[0];
    var secondval = myvalues[1];
    var thirdval = myvalues[2];

Не должно быть намного сложнее. Если срок действия не указан, файл cookie удаляется в конце сеанса, т.е. при закрытии браузера.

РЕДАКТИРОВАТЬ: Вы также можете указать путь:

$.cookie("mycookie", myvalue, {
expires : 10,           //expires in 10 days

path    : '/products',          //The value of the path attribute of the cookie 
                       //(default: path of page that created the cookie).

domain  : 'http://localhost:8080',  //The value of the domain attribute of the cookie
                       //(default: domain of page that created the cookie).

secure  : true          //If set to true the secure attribute of the cookie
                       //will be set and the cookie transmission will
                       //require a secure protocol (defaults to false).
});

Я думаю, что-то вроде этого сделает:

var myvalue = 100, 2000, 300;
$.cookie("mycookie", myvalue, {path : '/audi/products'});

О, и сеанс заканчивается, когда браузер закрывается, а не когда страница выгружается, поэтому сессионный cookie подойдет.

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