我正在使用carhartl的jQuery cookie插件创建一个包含对象的键和值的cookie。在我的一个方法中,我调用create cookie,然后我调用get cookie;但是read方法不起作用: makeCookie方法:
function makeCookie(name,value){
$.cookie(name,value);
}
readCookie方法:
function readCookie(name){
$.parseJSON($.cookie(name));
}
并调用这两种方法:
makeCookie('chatPopups',popUps);
var all=readCookie('chatPopups');
alert(all);
popUps是一个全局javascript对象;
我得到的错误是:
SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
任何人都可以帮助我吗?
答案 0 :(得分:1)
请在readCookie
功能
readCookie方法:
function readCookie(name){
return $.cookie(name); // no parse needed because its not a json object of cookie
}
答案 1 :(得分:0)
你的$ .cookie()方法看起来很好。
问题最可能在于popUps,它可能不是格式正确的JSON字符串,因为$ .parseJSON()非常敏感。
由于popUps是一个全局JavaScript对象,因此只需{J}解析就可以return $.cookie(name);
。
答案 2 :(得分:0)
解决了问题,将makeCookie方法更改为:
function makeCookie(name,value){
$.cookie(name,$.param(value),{ path: '/' });
}
和readCookie方法:
function readCookie(name){
var readCookie=$.cookie(name);
readCookie = readCookie.split('&');
if(readCookie.length != 0){
for (i=0; i<readCookie.length; i++) {
readCookie[i] = readCookie[i].split('=');
popUps[readCookie[i][0]] = readCookie[i][1];
}
}
}
答案 3 :(得分:0)
function getCookieValue(cname) { // cname is nothing but the cookie value which contains
// the value
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}