在我的一个程序中,我设置了一个包含用户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(",");
答案 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');