如何将Cookie转换为Json对象?

时间:2014-03-03 20:19:31

标签: javascript json cookies

假设我设置了2个cookie值。我知道cookie对象的语法通常不是很简单,不能简单地设置成变量。所以我使用以下代码为2个cookie返回2个变量:

cookie_name = "username";
cookie_name2 = "password";

var YouWrote=getName();
var YouWrote2=getName2();

function getName() {
    if(document.cookie)
    {
    index = document.cookie.indexOf(cookie_name);
    if (index != -1)
    {
    namestart = (document.cookie.indexOf("=", index) + 1);
    nameend = document.cookie.indexOf(";", index);
    if (nameend == -1) {nameend = document.cookie.length;}
    YouWrote = document.cookie.substring(namestart, nameend);
    return YouWrote;
}}}

function getName2() {
    if(document.cookie)
    {
    index = document.cookie.indexOf(cookie_name2);
    if (index != -1)
    {

    namestart = (document.cookie.indexOf("=", index) + 1);
    nameend = document.cookie.indexOf(";", index);
    if (nameend == -1) {nameend = document.cookie.length;}
    YouWrote2 = document.cookie.substring(namestart, nameend);
    return YouWrote2;
}}}

现在YouWrote和YouWrote2包含cookie值(与浏览器中存储的值完全相同)。现在我想知道如何使用Javascript或Jquery将两个YouWrote变量存储到JSON对象中并通过Post方法发送它。

我正在考虑以下几点:

$(document).ready(function () {
$.ajax
        ({
            type: "POST",
            url: "Insert URL Here",
            dataType: 'json',
            async: false,
            data: ??????????????????????????

});

坚持数据部分。不确定这是否是正确的做法。

1 个答案:

答案 0 :(得分:0)

首先,我不认为在cookie中存储用户名和密码客户端是个好主意。相反,您可以使用存储在cookie中的会话令牌来验证用户是否已登录。其次,您可以使用一个函数根据其名称获取cookie的值。编写一个函数,即getCookieVal(nameParameter)可以返回正确的值 - 节省时间并且不容易出错。

但是,让我们谈谈这一点。您需要使用json表示法来传递js对象的数据,如下所示:

data : { you_wrote_1 : YouWrote , you_wrote_2: YouWrote2 } 

就是这样。然后,您可以使用$ _POST表在服务器上获取这些变量 - 使用php。