#javascript #jquery #cookies
#javascript #jquery #файлы cookie
Вопрос:
Я использую jQuery для доступа / установки файлов cookie. Я установил файл cookie с именем CookieNo1
в path /
.
Я установил это, используя URL localhost:8080/audi
.
Сохраняется значение cookie, которое я проверил вручную в файлах cookie firefox. Теперь, когда я пытаюсь получить доступ к тому же файлу cookie, используя URL localhost:8080/audi/products
с помощью $.cookie('CookieNo1');
Похоже, это не восстанавливает значение cookie. Он возвращает нулевое значение. Однако, когда я пытаюсь записать cookie, используя тот же localhost:8080/audi/products
URL, он перезаписывает предыдущее значение cookie. Пожалуйста, помогите мне с этой проблемой.
Все, что мне нужно, это $.cookie('CookieNo1')
вернуть предыдущее значение cookie вместо null. Заранее спасибо
Комментарии:
1. @Maxim это одна проблема с файлами cookie. С URL-адресом проблемы нет, как вы могли подумать, потому что файлы cookie хранятся для каждого домена и будут отправляться для каждого запроса от чего-либо, исходящего из этого домена. не могли бы вы проверить, что
document.cookie
возвращает этот URLhttp://localhost:8080/audi/products
2. @BookOfZeus Да, я использую jquery, добавил это и в вопросе
3. @MaximDsouza Я только что это увидел 😉 вы пробовали решение adeno?
4. @Deeptechtons document.cookie возвращает JSESSIONID=C987E73F47D5DB2C503B4652166C5F58
5. @BookOfZeus Adeno не дал никакого решения. var getmycookie = $.cookie(«mycookie»); возвращает мне значение null при обращении с URL
http://localhost:8080/audi/products
-адреса, когда файл cookie был установлен с помощьюhttp://localhost:8080/audi
Ответ №1:
Вы должны установить дату истечения срока действия. В противном случае 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",
я пытаюсь извлечь файл cookie из URL-адреса http://localhost:8080/audi/products использование
valueToSet, { expires: 30, path: '/', secure: true });'$.cookie('asdftraffic');'
которого возвращает значение null.
Ваша проблема вызвана secure: true
. Этот атрибут требует, чтобы cookie передавался по защищенному соединению ( https
). Снимите secure: true
флаг, если вы не используете зашифрованное соединение.
Комментарии:
1. Это не то, что я ищу. Я хочу получить доступ к cookie по пути / с url localhost:8080/audi/products
2. @MaximDsouza COL, файлы cookie сохраняются для каждого домена
http://localhost:8080
иhttp://localhost:8080/audi/products
выглядят для вас как разные домены??3. @Deeptechtons Когда я сказал, что они принадлежат к разным доменам. Они находятся в одном домене, но cookie, установленный URL-адресом / audi, недоступен по URL-адресу /audi/products .
4. Ваши файлы cookie недоступны по другим путям, потому что срок их действия истекает при выгрузке вашей страницы . Это понятно?
5. @MaximDsouza ну, это так и было
This is not what I am looking for. I want to access the cookie at path / from the url localhost:8080/audi/products
. в любом случае, вы пытались установить время истечения срока действия и проверить его снова?
Ответ №2:
Сначала вы устанавливаете cookie:
var myvalue = 100, 2000, 300;
$.cookie("mycookie", myvalue);
Затем вы получаете cookie:
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 сеанса.
Комментарии:
1.
var getmycookie = $.cookie("mycookie");
возвращает null для меня при обращении с URLhttp://localhost:8080/audi/products
-адреса, когда файл cookie был установлен с помощьюhttp://localhost:8080/audi