通过Jquery将cookie中的数据转换为JSON对象

时间:2017-02-20 17:06:15

标签: jquery cookies

我已经通过php服务器设置了cookie并将其发送到这样的前端页面

$data = array (
    'id' => $graphNode['id'],
    //'birthday' => $graphNode['birthday'],
    'birthday' => '',
    'email' => $graphNode['email'],
    'link' => $graphNode['link'],
    'user_name' => $graphNode['name'],
    'is_logged_in' => 1,
    'profile_pic_link' => json_decode($graphNode['picture'])->url
);

$this->session->set_userdata($data);
$data = json_encode($data);
setcookie('facebook', $data, time()+3600, "/");
include('http://localhost/trada-frontend/index.html');
redirect('http://localhost/trada-frontend/index.html');

在我的index.html页面中,我可以提醒cookie

  

=实%7B%22id%22%3A%221114904728619320%22%2C%22birthday%22%3A%22%22%2C%22email%22%3A%22nguyenminhduc183%40yahoo.com%22%2C%22link% 22%3A%22https%3A%5C%2F%5C%2Fwww.facebook.com%5C%2Fapp_scoped_user_id%5C%2F1114904728619320%5C%2F%22%2C%22user_name%22%3A%22%5Cu0110%5Cu1ee9c + Nguy% 5Cu1ec5n%22%2C%22is_logged_in%22%3A1%2C%22profile_pic_link%22%3A%22https%3A%5C%2F%5C%2Fscontent.xx.fbcdn.net%5C%2FV%5C%2Ft1.0-1%图5C%2Fp50x50%5C%2F16406482_1104007966375663_2824130433013720008_n.jpg%3Foh%3D0c954d5a8698e78458737741fbf352e6%26oe%3D592DAD80%22%7D

如何使用jquery分割cookie的名称并将数据转换为JSON对象?非常感谢你。

2 个答案:

答案 0 :(得分:0)

你甚至不需要jQuery:首先通过regex获取cookie的名称和内容,然后解码内容并将其解析为JSON:



var cookie = 'facebook=%7B%22id%22%3A%221114904728619320%22%2C%22birthday%22%3A%22%22%2C%22email%22%3A%22nguyenminhduc183%40yahoo.com%22%2C%22link%22%3A%22https%3A%5C%2F%5C%2Fwww.facebook.com%5C%2Fapp_scoped_user_id%5C%2F1114904728619320%5C%2F%22%2C%22user_name%22%3A%22%5Cu0110%5Cu1ee9c+Nguy%5Cu1ec5n%22%2C%22is_logged_in%22%3A1%2C%22profile_pic_link%22%3A%22https%3A%5C%2F%5C%2Fscontent.xx.fbcdn.net%5C%2Fv%5C%2Ft1.0-1%5C%2Fp50x50%5C%2F16406482_1104007966375663_2824130433013720008_n.jpg%3Foh%3D0c954d5a8698e78458737741fbf352e6%26oe%3D592DAD80%22%7D';
var cookieParts = cookie.match(/^([^=]+)=(.*)$/);

console.log("cookie name is " + cookieParts[1]);
console.log("cookie content as JSON is ", JSON.parse(decodeURIComponent(cookieParts[2])));




答案 1 :(得分:0)

这个答案很晚但是这里有一个班轮(使用es6 +):

var cookie = "referer=example.com/post?id=22;bcomID=8075; subreturn=example&fuzzy=true&ct=null&autobounce=true; JSESSIONID=6D20570E1EB; mbox=session"
var cookies = cookie.split(/[;] */).reduce((result, s)=>
               ({...({[s.split('=')[0]]:s.split('=')[1]}),...result}),
             {});
  console.log(JSON.stringify(cookies, null, 4));