我尝试在Javascript和Jquery中设置并获取Cookie,但是对于这两种方法都返回 null 。我的代码看起来正确,但我不知道为什么它对我不起作用。
的 cook.js 的
function setCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else
var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0)
return c.substring(nameEQ.length,c.length);
}
return null;
}
function deleteCookie(name) {
setCookie(name,"",-1);
}
和我的html页面:
fin.html:
<!DOCTYPE html>
<html>
<head>
<title>My Page</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="jquery.cookie.js"></script>
<script type="text/javascript" src="cook.js"></script>
</head>
<body>
<a id="setcookie" href="fin2.html">SET COOKIE</a>
<script>
$("#setcookie").click(function() {
// Using javascript function
setCookie("mycookie", "itsvalue", 1) ;
// Using jQuery plugin
$.cookie('myCookie2': "myValue");
});
</script>
</body>
</html>
的 fin2.html 的
<!DOCTYPE html>
<html>
<head>
<title>My Page</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="jquery.cookie.js"></script>
<script type="text/javascript" src="cook.js"></script>
</head>
<body>
<a id="get" href="#">YOO</a>
<script>
$("#get").click(function() {
alert(getCookie("mycookie")) ;
alert($.cookie('myCookie')) ;
}) ;
</script>
</body>
</html>
但它使用jquery插件和javscript的函数返回null。你对这个问题有什么看法吗?非常感谢你:))
答案 0 :(得分:1)
默认情况下,jQuery cookie插件使用当前路径设置cookie作为路径的默认值。这意味着cookie只能在设置它的同一页面上使用。如果您希望cookie可以从您网站上的任何页面读取,请执行此操作。
$.cookie('the_cookie', 'the_value', { path: '/' });
另请注意,我使用的是,
而不是:
答案 1 :(得分:1)
您是否尝试在Apache / IIS中运行此功能? Cookie仅在从服务器运行时设置。我根据您的代码在http://jsfiddle.net/ZuCEC/
组建了一个快速的jsfiddle您应该可以设置,获取和删除Cookie,并随时查看值的变化。
希望有所帮助。