前端学习-JavaScript学习-cookie
在使用Microsoft edge的时候,运行以下代码会报兼容性错误,但是一直没解决
'content-type' header charset value should be 'utf-8'.
使用chrome不会存储cookie 也没有报错
使用火狐可以成功存储cookie
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script >
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(";");
for(var i=0;i<ca.length;i++) {
var c = ca[i].trim();
if(c.indexOf(name)==0) {
return c.substring(name.length,c.length);
}
}
return "";
}
function setCookie(cname,cvalue,exdays) {
var d = new Date();
d.setTime(d.getTime()+exdays*24*60*60*1000);
var expires = "expires="+d.toGMTString();
document.cookie = cname + "=" + cvalue + ";" + expires;
}
function checkCookie() {
var user = getCookie("username");
// delCookie("username");
if(user != "") {
alert("welcome, " + user + "!");
}
else {
user = prompt("please input your name: ","");
if(user!=""&&user!=null) {
setCookie("username",user,60);
}
}
}
//删除cookie
function delCookie(name){
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(name);
if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}
</script>
</head>
<body onload="checkCookie()">
</body>
</html>
关于删除cookie,使用了这个博客里的代码:
JavaScript 删除cookie
其中提到以下方法考虑并不全面,cookie的修改需要四个属性必须匹配:1).key 2).domain 3).path 4).secure
也就是设置时的4个属性和删除时的4个属性要相匹配
//删除cookie
function delCookie(name){
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(name);
if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!