Файлы cookie JavaScript не устанавливаются

#javascript #cookies

#javascript #файлы cookie

Вопрос:

Я следил за некоторыми связанными темами, а также следил за руководством по http://www.quirksmode.org/js/cookies.html но я не могу заставить свое печенье застыть.

 <script type="text/javascript">
function setcookie(name, value, days)
{
    if (days)
    {
        var date = new Date();
        date.setTime(date.getTime() days*24*60*60*1000));
        var expires = "; expires="date.toGMTString();
    }
    else var expires = "";
    document.cookie = name "="value expires ;path=/";
}
</script>
  

Затем в моем теге у меня есть:

 <body>
<script type="text/javascript">
    setcookie("testcookie", "test", 1);
</script>
</body>
  

Есть идеи, где я ошибаюсь? У меня включены файлы cookie с помощью FF, и я могу видеть файлы cookie, создаваемые в режиме реального времени сайтами, такими как Youtube, но этот файл вообще не устанавливается.

Ответ №1:

Скрипт содержит несколько ошибок. Вот исправленная версия (протестирована):

 function setcookie(name, value, days)
{
  if (days)
  {
    var date = new Date();
    date.setTime(date.getTime() days*24*60*60*1000); // ) removed
    var expires = "; expires="   date.toGMTString(); //   added
  }
  else
    var expires = "";
  document.cookie = name "="   value expires   ";path=/"; //   and " added
}
  

Комментарии:

1. Спасибо, мне нужно было добавить toGMTString() .

Ответ №2:

В этой строке отсутствуют знак и кавычки:

 document.cookie = name "="value expires ;path=/";
  

должно быть:

 document.cookie = name   "="   value   expires   ";path=/";
  

Я бы посоветовал вам заглянуть в консоль ошибок вашего браузера или консоль вашего javascript-отладчика, чтобы увидеть ошибки javascript.

Комментарии:

1. По-прежнему без изменений, у меня всегда была цитата после истечения срока действия, но я пропустил ее, когда вводил ее здесь. Я добавил значение перед и протестировал, но все еще не установил файл cookie.

2. Есть еще две строки с ошибками, смотрите Мой ответ.

3. @SethHall — Если вы не собираетесь заглядывать в консоль ошибок вашего браузера, чтобы увидеть, где находятся ваши ошибки javascript, тогда вы могли бы также начать печатать с завязанными глазами. Это должно быть ПЕРВОЕ место, на которое вы обращаете внимание, когда код не выполняется. Смотрите ответ Yogu о некоторых других ваших ошибках, но в следующий раз загляните в консоль ошибок самостоятельно, чтобы увидеть свои собственные ошибки.