Cookie всегда запрашивает ввод

#javascript #html

#javascript #HTML

Вопрос:

У меня проблема. JavaScript всегда отображает окно для запроса ввода при каждой перезагрузке страницы. Предполагается запрашивать только один раз, а затем, когда я перезагружаю страницу, на ней должно отображаться «Добро пожаловать снова: your_input_here». Я попробовал это с кодом VS, используя Live Server, и это сработало. Однако, когда я захожу в папку, содержащую файлы, и нажимаю на index.html досье. Он отобразил окно запроса ввода, я ввел ввод и нажал кнопку отправки, затем, когда я перезагружаю страницу, окно отображается еще раз и запрашивает ввод без сохранения моего последнего ввода. Кто-нибудь может мне помочь? Спасибо

 function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime()   (exdays * 24 * 60 * 60 * 1000));
    var expires = "expires=" d.toUTCString();
    document.cookie = cname   "="   cvalue   ";"   expires   ";path=/";
  }
  
  function getCookie(cname) {
    var name = cname   "=";
    var ca = document.cookie.split(';');
    for(var i = 0; i < ca.length; i  ) {
      var c = ca[i];
      while (c.charAt(0) == ' ') {
        c = c.substring(1);
      }
      if (c.indexOf(name) == 0) {
        return c.substring(name.length, c.length);
      }
    }
    return "";
  }
  
  function checkCookie() {
    var user = getCookie("username");
    if (user != "") {
      alert("Welcome again "   user);
    } else {
      user = prompt("Please enter your name:", "");
      if (user != "" amp;amp; user != null) {
        setCookie("username", user, 365);
      }
    }
  }  
 <!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-width=1">
        <script src="./cookie.js"></script>  
        <title>A14</title>
    </head>
    <body onload="checkCookie()">
      
    </body>
</html>  

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

1. Файлы cookie привязаны к домену, а путь к файловой системе в адресной строке вашего браузера не является доменом. Вы должны использовать liveserver для тестирования этой функции

2. Файлы cookie не работают при просмотре с использованием протокола file:///, в зависимости от браузера.