我的问题是通过点击按钮来设置 cookie 是行不通的。我用 3 种不同的方式对其进行了测试。
HTML:
<!DOCTYPE html>
<html dir="ltr">
<head> [...]
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" type="text/javascript"></script>
<script src="/cookies/js/jquery.cookie.js"></script>
<script>
document.getElementById('btnSetCookie').onclick = function () {
$.cookie('cookie-1', 'true');
alert('You have set the cookie: ' + jQuery.cookie('cookie-1'));
});
$(function () {
$("#btnSetCookie").click(function () {
jQuery.cookie('cookie-2', 'true');
alert('You have set the cookie: ' + jQuery.cookie('cookie-2'));
});
});
$(document).ready(function () {
$("#btnSetCookie").on('click', function () {
$.cookie('cookie-3', 'true');
alert('You have set the cookie: ' + jQuery.cookie('cookie-3'));
});
});
</script>
</head>
<body> [...]
<button id="btnSetCookie">set cookie</button> [...]
</body>
</html>
知道我的错误是什么吗?
最佳答案
这对您不起作用的原因是,如果您不在服务器上运行,则无法设置 cookie。 换句话说,如果您在本地浏览器中使用 file://提供文件,它根本无法工作。
您的第二个和第三个选项都运行良好。我会清理它们并始终如一地使用 $ 或 jQuery,但两者都在服务器上运行时工作。
这是一个 demo 您的代码有效。
$(document).ready(function () {
$("#btnSetCookie").on('click', function () {
$.cookie('cookie-3', 'true');
alert('You have set the cookie: ' + $.cookie('cookie-3'));
});
});
您还可以考虑使用更新版本的 jQuery 以及您正在使用的插件(您正在使用的版本不再维护)。事实上,新版本的插件根本不再依赖于 jQuery。
关于javascript - 设置 cookie 不适用于 Javascript 或 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49070213/