gpt4 book ai didi

javascript - Javascript 和 Cookie 的问题

转载 作者:可可西里 更新时间:2023-11-01 13:39:45 27 4
gpt4 key购买 nike

使用 Javascript,我想创建一个 cookie,每次按下按钮时,输入字段的值都为“用户名”。然后我想读取该 cookie 并将其显示在网站上。虽然我只是尝试这个来测试我对 cookie 的了解,但我现在想知道这个问题的解决方案,因为我的代码不起作用。

我将使用 elated.com 的这两个功能:

function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure )
{
var cookie_string = name + "=" + escape ( value );

if ( exp_y )
{
var expires = new Date ( exp_y, exp_m, exp_d );
cookie_string += "; expires=" + expires.toGMTString();
}

if ( path )
cookie_string += "; path=" + escape ( path );

if ( domain )
cookie_string += "; domain=" + escape ( domain );

if ( secure )
cookie_string += "; secure";

document.cookie = cookie_string;




function get_cookie ( cookie_name )
{
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );

if ( results )
return ( unescape ( results[2] ) );
else
return null;
}

当按下按钮时,此函数将运行:

function Register()
{
var username = document.getElementById("username").value; //Read the input value
set_cookie("username", username, 2012, 12, 23); //Set the cookie
document.write(get_cookie("username")); //Read the cookie
}

每当我尝试运行它时,get_cookie 函数都会返回 null。这意味着它至少运行成功,但没有找到任何名为“用户名”的 cookie,即使我刚刚创建它。有人可以帮忙吗?

最佳答案

您说您使用的是 Chrome。 Chrome(和 Chromium)不允许在本地页面上设置或访问 cookie,这是出于安全考虑的慎重决定(参见 http://code.google.com/p/chromium/issues/detail?id=535#c3)。如果将您发布的代码放在服务器上并发送出去,它确实有效,但如果您从本地系统将页面作为 file://URL 打开,则不会正常运行。这也是 jsfiddle 起作用的原因。

其他一些浏览器确实允许在本地页面中使用 cookie,因此如果您希望在本地试验 JavaScript 和 cookie,您最好尝试其中之一。 Firefox 允许他们使用预期的行为,尽管他们已经考虑过更改它并且可能会在将来这样做。 Chrome 还有一个命令行标志 --enable-file-cookies,您可以在测试时使用它,但不建议日常使用。

您也可以将您的页面放到服务器上并在那里进行测试。免费托管服务之一或 Apache 的实例或您本地计算机上的类似文件可以工作。重要的是页面是通过 HTTP 访问的。

关于javascript - Javascript 和 Cookie 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6433738/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com