【发布时间】:2015-08-07 21:38:54
【问题描述】:
当用户第一次访问页面时,我需要设置一些 cookie。所以我清除了浏览器的 cookie,然后尝试加载我的项目。清除 cookie 后。页面加载时未设置 Cookie。我正在使用 Razor 开发 MVC 5
这是我的 JavaScript 代码
<script src="~/Content/JavaScript/jquery.js"></script>
<script src="~/Content/JavaScript/jqueryui/jquery-ui-1.10.4.custom.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function () {
getCookie("user_id");
if (getCookie("user_id") == "") {
var user_id = guid();
setCookie("user_id", user_id, 365);
}
var currency_id = getCookie("currency_id")
if (currency_id == "" || currency_id == null) {
setCookie("currency_id", "1", 365);
setCookie("currency_code", "INR", 365);
setCookie("currency_rate", "1", 365);
}
else {
ChangeCurrencyValue(currency_id)
}
ShowCart();
ShowWishList();
});
</script>
<script type="text/javascript">
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
function getCookie(cname) {
var name = cname + "=";
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);
if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
}
return "";
}
function guid() {
function s4() {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
}
return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
s4() + '-' + s4() + s4() + s4();
}
</script>
我已经尝试将代码放入 <head> 阻止它不起作用
【问题讨论】:
-
</script> function setCookie(cname, cvalue, exdays) {你必须把它放在脚本块而不是外面。 -
它只在脚本块中,我只是以错误的方式复制到这里。我会编辑它
-
您必须将函数放在一个脚本块中,否则您可能会更改脚本块的顺序。在调用函数之前将函数脚本块向上放置。
标签: javascript jquery asp.net-mvc cookies