У меня есть php, который устанавливает:
setrawcookie('psd_susenka', rawurlencode("cookie_value"), time() + (86400 * 365));
Я даже пробовал длинную версию с путями, доменами и переключателями (только http и безопасный, оба с ложными значениями)
затем после перезагрузки страницы у меня есть jquery:
$(document).ready(function(){
alert(document.cookies);
})
Если установлен единственный файл cookie «psd_susenka», я получаю предупреждение с «Не определено».
Если я установил другие файлы cookie с помощью $.cookie("test", something, { expires: 365 });, тогда предупреждение будет записывать только файлы cookie, установленные с помощью jquery.
Так что не так с PHP-кодом? Или, может быть, что-то не так с предупреждением jquery?
Я загрузил <script type = "text/javascript" src = "//cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>, и файл cookie вручную проверен в Chrome, поэтому он существует.
Если вы перейдете на вкладку «Приложение» в Chrome Inspector, сможете ли вы увидеть файл cookie? Это безопасно?
Я рекомендую отказаться от файлов cookie и использовать сеансы и ajax
@LucaColonnello спасибо за предложение. Это небезопасно, но это только HTTP, даже если в php указано, что это не setrawcookie('psd_susenka', rawurlencode($psw), time() + (86400 * 365), NULL , NULL , NULL , 0);.
Вместо того, чтобы устанавливать для этих необязательных параметров значение null, попробуйте просто пропустить их, как и setrawcookie('psd_susenka', rawurlencode($psw), time() + (86400 * 365), , , , FALSE);, почему вы просто не используете setcookie вместо ручного кодирования URL-адреса значения cookie?
Что ж, я не могу пропустить аргументы в PHP - по крайней мере, я так думал. Я пробовал «setcookie». Этот пример с setrawcookie - всего лишь вторая попытка, и я сохранил код таким образом
Это действительно нервно. Я знаю, что только что узнал о пропуске аргументов за последние несколько недель, и теперь я только нахожу доказательства того, что ни php, ни JavaScript не поддерживают его. Но я не читаю документацию на других языках, так что мне это, должно быть, приснилось.
Убедитесь, что вы ничего не выводите перед вызовом - setrawcookie() and setcookie(). Также убедитесь, что у вас нет персонажа (ов) до <?php. Вывод перед этими функциями и тегом может привести к сбою настройки cookie.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вероятно, у вас есть опечатка.
Попробуйте document.cookie вместо document.cookies.
Документация: https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie
P.S. document.cookie является частью WebAPI (см .: https://developer.mozilla.org/en-US/docs/Web/API). Это не часть jQuery и не часть JavaScript. JavaScript (также jQuery, потому что он работает только с JavaScript) может работать с WebAPI.
Ой ну спасибо. Пробовал по-прежнему возвращать только файлы cookie, установленные с помощью javascript, а не php.
поскольку @Luca Colonnello предположил, что я проверил его с помощью вкладки Chrome Application, а файл cookie, установленный через PHP, - это только Http, даже когда я установил его на false setrawcookie('psd_susenka', rawurlencode($psw), time() + (86400 * 365), NULL , NULL , NULL , 0);
Умник. (Я сказал это)
@loqan Твой код у меня работает, проверял неоднократно. Возможно, вы что-то не так делаете. Проверьте на новой странице, заново напишите эти простейшие операции.
вы устанавливаете куки в ajax или как?