我想在cookie中保存一些json数据,并使用jquery cookie在不同的页面中检索它 以下是我获取数据并存储的方法。
$.ajax({
type: "POST",
url: "V2_Loader.aspx/GetMenuData",
data: "{id:" + id + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
menus = response.d;
$.cookie('menu-data', menus);
}
}
在另一个页面中,我尝试像这样检索它。
menus = JSON.parse($.cookie("menu-data"));
但我得到了#34; JavaScript运行时错误:字符无效" 我试过打开json旗帜 $ .cookie.json = true; 在存储它之前以及当我尝试将其打印出来时。 像这样
var result;
for (var i = 0; i < menus.length; i++) {
result += menus[i].menuText + ', ';
}
alert(result);
我得到一个未定义的数组,如printed array
这就是我的回复看起来像response
的方式有关我应该如何存储并检索它的任何建议?
答案 0 :(得分:1)
$.cookie('menu-data', menus);
中的,menus
不是json。你需要把它变成json。
$.cookie('menu-data', JSON.stringify(menus));
由于json的大小,您可能会遇到cookie长度限制。
答案 1 :(得分:0)
作为使用Cookie的替代解决方案,您可以在浏览器中使用sessionStorage
。
$ajax({
...,
success: function (response) {
sessionStorage.setItem('menu-data', JSON.stringify(response.d));
}
});
var menus = JSON.parse(sessionStorage.getItem('menu-data'));