jQuery cookie值是%5Bobject%20Object%5D

时间:2013-05-03 09:31:00

标签: javascript jquery cookies

我有一个简单的html页面和一个js脚本: HTML页面:

<body>
<input type="text" id = "content">
<button type="button" id="btn"> Save </button>
</body>

使用Javascript:

$(document).ready( function(){
    var cook = $.cookie('theName',  { path: '/'});
     if ( cook )
        alert(cook); 
    $('#btn').click(function(){
        var theName = $('#content').val();
        alert(v.val());
        $.cookie('theName', theName, { path: '/', expires: 7 });
        alert("Cookie done");
    });
});

库:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"> </script>
<script type="text/javascript" src = "https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js"> </script>

它应该保存我的名字,当我点击刷新以显示我的名字。唯一的问题是当我尝试读取cookie时,而不是名称显示%5Bobject%20Object%5D。

谢谢。

3 个答案:

答案 0 :(得分:5)

做的:

$(document).ready( function(){
    var cook = $.cookie('theName'); //get from cookie if exists
     if ( cook )
        alert(cook); 
    $('#but').click(function(){
        var theName = $('#content').val();
        alert(theName);
        $.cookie('theName', theName, { expires: 7, path: '/' }); //set the cookie
        alert("Cookie done");
    });
});

<强>更新

尝试添加:

$.cookie.raw = true;

答案 1 :(得分:3)

var cook = $.cookie('theName',  { path: '/'});

这会使用{ path: '/'}的字符串表示覆盖cookie。

要实际检索现有Cookie,只需传递名称:

var cook = $.cookie('theName');

无论如何都没有必要通过这条路径 - 如果你在设置cookie的路径之外,根本就没有得到它。

答案 2 :(得分:0)

试试这个。

<!DOCTYPE html>
<html>
<head>
<script>
function getCookie(c_name)
{
var c_value = document.cookie;
var c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1)
{
c_start = c_value.indexOf(c_name + "=");
}
if (c_start == -1)
{
c_value = null;
}
else
{
c_start = c_value.indexOf("=", c_start) + 1;
var c_end = c_value.indexOf(";", c_start);
if (c_end == -1)
{
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start,c_end));
}
return c_value;
}

function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}

function checkCookie()
{
var username=getCookie("username");
if (username!=null && username!="")
  {
  alert("Welcome again " + username);
  }
else
  {
  username=prompt("Please enter your name:","");
  if (username!=null && username!="")
    {
    setCookie("username",username,365);
    }
  }
}
</script>
</head>
<body onload="checkCookie()">
</body>
</html>

希望这有帮助。

来源:Here