document.cookie()函数在Javascript中不起作用

document.cookie()函数在Javascript中不起作用,javascript,html,css,Javascript,Html,Css,当用户在文本框中输入内容时,我试图在JavaScript中设置cookie,但它似乎不起作用。当我尝试警报或console.log时。我得到了价值。请帮我做这个 HTML代码: 问题 设置一个类似cookie的 document.cookie=名称=+变量 是根据一种有效的方法来做的。然而,问题是您正在尝试访问不存在的url参数,这就是cookie为空的原因。 假设在example.com/index.html上,您有以下表单: 在提交时,代码运行函数storeInHidden1,该函数尝试获取

当用户在文本框中输入内容时,我试图在JavaScript中设置cookie,但它似乎不起作用。当我尝试警报或console.log时。我得到了价值。请帮我做这个

HTML代码:

问题 设置一个类似cookie的

document.cookie=名称=+变量 是根据一种有效的方法来做的。然而,问题是您正在尝试访问不存在的url参数,这就是cookie为空的原因。 假设在example.com/index.html上,您有以下表单:

在提交时,代码运行函数storeInHidden1,该函数尝试获取仍然为空的window.location.search,因为代码中没有设置example.com/index.html上的window.location.search

接下来,根据表单中的action=confirm.html,所有数据都将通过GET请求发送到example.com/confirm.html。此url现在具有?userName=JohnDoe的参数。如果您现在在这个页面上运行storeInHidden1,您实际上会在cookie中获得一些内容

解决方案 为了将用户名保存在index.html上的cookie中,您只需更改storeInHidden1中的代码。您不需要从url中获取用户名,而是直接从带有document.getElementsByNameuserName[0].value的表单中获取用户名。完整代码可在下面找到:

函数存储HIDDEN1{ var user=document.getElementsByNameuserName[0]。值; document.cookie=名称=+用户; alertdocument.cookie; }
是否有可能将给定的cookie设置为HttpOnly?它将使文档无法访问。cookie APIdocument.cookie不是一个函数。这是否回答了您的问题?感谢@OrelEraki的回复。我正在本地主机上工作。@iwrestledabearon。不,这似乎不起作用。谢谢你的回复。
<form action="confirm.html" id="interestForm" onsubmit="storeInHidden1()">
  <input type="text" name="userName">
  <input type="submit" value="Register">
</form>
function storeInHidden1(){
   const queryString = window.location.search;
   const urlParams = new URLSearchParams(queryString);
   var queryStringDetails = urlParams.get("userName");
   document.cookie = "name=" + queryStringDetails;
   alert(document.cookie);
}