Когда вы объявляете cookie-файл именно с этой формой:
document.cookie = "key=value; property_1; property_2; ... property_n";
На основании этой документации MDN вы можете написать только один новый cookie-файл за раз.Если вы хотите объявить два файла cookie, вы должны выполнить два назначения:
document.cookie = "key=value; property_1; property_2; ... property_n";
document.cookie = "key2=value2; property_1; property_2; ... property_n";
Сейчас, почему вы не видите свойства при отображении document.cookie
?
Это нормальное поведение.document.cookie
на самом деле свойство доступа .Это означает, что JavaScript будет использовать геттер и сеттер, когда вы используете document.cookie
.То, что вы напишите в своем коде, не будет тем, что вы прочтете позже, потому что оно соответственно вызовет установщик для назначения файла cookie document.cookie = ...
и получателя для отображения document.cookie
. Все управляется внутренним интерпретатором JavaScript.
В вашем случае вы объявляете один файл cookie со значением и датой истечения срока действия.Точка с запятой ;
используется для указания других свойств файла cookie, который вы создаете.
document.cookie = "token=" + value + "; expires=" + date + ";";
В вашем примере объявляется новый файл cookie с именем token
, значением value
и свойствомexpires
с датой, содержащейся в переменной date
.Он вызовет внутренний установщик JavaScript для установки этого куки.
Теперь, если вы отобразите все свои куки с document.cookie
, вы получите только имя и значение каждого куки, а не другие свойства как expires
, path
, secure
или domain
.Он управляется внутренним вызовом получателя, который выбирает отображение только пары ключ = значение каждого файла cookie.
Как упоминалось в этот ответ о переполнении стека вы не можете получить доступ к другим свойствам с помощью document.cookie
.