cookie中的cookie值为空

时间:2013-11-13 04:23:13

标签: javascript jquery

在我的一个程序中,我设置了一个包含用户allowed_apps的cookie。在谷歌浏览器中,当用户登录时,用户可以毫无问题地显示允许的应用程序。但它不适用于IE。当我在IE上调试它时,它表示cookie('allowed_apps')为空。奇怪的是,我在Chrome中查看cookie('allowed_apps')时也是空的。但无论如何应用程序都在使用chrome。我清除了两个浏览器中的所有浏览历史并尝试过,但仍然相同。两者都表明cookie('allowed_apps')为空。但是只有chrome在cookie('allowed_apps')中有一些价值。顺便说一下,我使用jquery.cookie.js来管理cookie。

在user_manager.js

var perm_list = '';
var allowed_apps = [];

for (i=0; i<response_data[0].permissions.length; i++) {
    perm_list += response_data[0].permissions[i].permissions;
    if ("" != response_data[0].permissions[i].permissions) {
        allowed_apps.push(obj_common.str_replace("_permissions", "", response_data[0].permissions[i].app_name));
    }
}

$.cookie('allowed_apps', allowed_apps);

home.js我得到了cookie

    var allowed_apps = $.cookie('allowed_apps').split(",");

1 个答案:

答案 0 :(得分:0)

您目前正在将数组allowed_apps写入Cookie; cookies只能是一个字符串。在写之前对数组进行编码。

两种方法:

  • $.cookie.json = true; //jQuery.cookie将在json中自动为您处理编码和解码值
  • 当作品使用时:$.cookie('allowed_apps', JSON.stringify(allowed_apps));
    阅读:var allowed_apps = JSON.parse($.cookie('allowed_apps'));

如果您设置cookie.json,请将getter更改为

var allowed_apps = $.cookie('allowed_apps');