使用Javascript设置cookie

Setting a cookie with Javascript

本文关键字:cookie 设置 Javascript 使用      更新时间:2023-09-26

我正在尝试构建我的第一个移动应用程序,它需要连接到我的mysql数据库并使用json返回数据。这很好,目前我有一个登录系统,一旦它确定用户名和密码存在,就会返回一条成功消息。

下一步,我想在页面上使用ajax连接到数据库并返回一些数据。现在,我想要返回的数据只需要是该用户的数据。

因此,我的想法是,当成功消息返回时,我将输入登录表单的用户名设置为cookie,然后我可以使用该cookie作为查询的一部分吗?

这可能吗?或者有更好的方法吗?,我是用Javascript开发的新手,通常只使用php,所以任何建议都会受到欢迎。

感谢

您的问题有两部分。

(1) 使用JavaScript管理cookie:

首先,您可以创建几个助手函数,这将使您更容易地在任何您想要的地方设置/获取cookie:

function setCookie(name, value, exp_y, exp_m, exp_d) {
    var cookie_string = name + "=" + escape(value);
    var expires = new Date(exp_y, exp_m, exp_d);
    cookie_string += "; expires=" + expires.toGMTString();
    document.cookie = cookie_string;
}
function getCookie(cookie_name) {
    var results = document.cookie.match('(^|;) ?' + cookie_name + '=([^;]*)(;|$)');
    return results ? unescape(results[2]) : null;
} 

现在,您可以根据需要调用这些辅助函数。在您的用例中,当您的身份验证返回'success'标志时,您将cookie设置为"userName",如下所示:

setCookie('myCookie', userName, 2050, 1, 1);

注意,在上面的例子中,我们将2050作为一个任意的高值,这样这个cookie就不会过期。否则,您可以完全保留"expires"标志来创建仅限会话的cookie。

每当你需要调用"userName"来传递给AJAX调用时,你就会得到cookie:

var userName = getCookie('myCookie');

(2) 。。。有更好的方法吗?

是的。身份验证成功后,您可以将"userName"保存在服务器端的会话var中。现在,每当您在查询中需要当前登录的"userName"时,您只需使用该会话变量。一旦用户注销,您就可以清除该会话。一旦会话超时,会话将自动清除。所以,你不用管家务了。

希望能有所帮助。

试试这个简单的方法:

document.cookie ='cookie1=test; expires=Fri, 3 Aug 2013 20:47:11 UTC; path=/'