使用Javascript设置cookie

时间:2013-12-16 05:25:13

标签: javascript html cookies

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

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

所以我的想法,这是我需要一些建议的地方,是当返回成功消息时,我将输入的用户名设置为cookie,然后我可以使用该cookie作为我的一部分查询?

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

由于

2 个答案:

答案 0 :(得分:1)

您的问题分为两部分。

  

(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;
} 

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

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

请注意,在上面的示例中,我们将2050作为任意高值传递,以便此cookie不会过期。否则,您可以完全保留“ expires ”标志以创建仅限会话的Cookie。

无论何时,您需要回忆一下“ userName ”以传递给AJAX调用,您将获得cookie:

var userName = getCookie('myCookie');
  

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

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

希望有所帮助。

答案 1 :(得分:1)

试试这个简单的方法:

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