通过文件访问页面时Cookie不起作用://
Cookies not working when page accessed via file://
我的代码在firefox中工作,当我访问w3schools使用chrome在他们的编辑器中测试我的代码时,它也工作得很好,但当我从notepad++在chrome中启动代码时,就不工作了。身体负荷似乎不起作用,因为我没有得到警报。我的铬是最新的。我们将不胜感激。
<!DOCTYPE html>
<html>
<head>
<script>
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 f(){
var user=prompt("What is your name?","");
if(user!="" && user!=null){
setCookie("username",user,30);}
}
function getC(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 checkcooki(){
var user=getC("username");
if(user!=""){
alert("Welcome back "+user);
}
}
</script>
</head>
<body onLoad="checkcooki()">
<input type="button" onclick="f()" value="klick">
</body>
</html>
事实上:使用file://
协议并不能保证cookie的正确工作。由于cookie需要3件事:
- 包含实际数据的名称-值对
- 过期日期,超过该日期后不再有效
- 应将其发送到的服务器的域和路径
域告诉浏览器应将cookie发送到哪个域。如果不指定它,它将成为设置cookie的页面的域
在file://
协议上,您没有域。
现在,一些浏览器可能已经找到了解决方案,比如FireFox和IE。你可以在这些浏览器上测试你的代码,但它们不会像在网络服务器上那样使用cookie。
在您的情况下,正确的x浏览器测试需要http://
协议。我建议您启动一个jsfiddle或设置一个Web服务器(IIS、apache)。
正确读取cookie:quircksmode
如果你仍然坚持通过file://
协议让它在chrome上工作,那么如果你正确地获得了路径,你可能会有很小的机会。
- path:正确转义的路径=>
encodeURIComponent(document.domain)
或"c:'/my%20folder'/index.html"
(沿着这些行,但这里的信息非常不可信) - 域:
"/"
(不知道您还可以在这里尝试什么)
您的用户变量必须是一个空白字符串。
在checkcooki()函数的顶部放置一个警报,以验证body onload是否有效。
相关文章:
- 使用javascript从特定网站删除cookie不起作用
- 通过文件访问页面时Cookie不起作用://
- JQuery Cookie 不起作用
- 为什么这个JavaScript cookie不起作用
- 基础 6 显示打开页面加载,cookie 不起作用
- 当我重新访问该页面时,我的 cookie 不起作用
- 引导折叠 cookie 不起作用
- Laravel5 AJAX set cookie 不起作用
- jQuery cookie 根本不起作用
- 为什么我的cookie脚本不起作用
- 为什么设置document.cookie在Chrome中不起作用
- jQuery cookie CORS即使在设置了头并带有凭据的情况下也不起作用
- 在Android浏览器中禁用cookie不起作用
- Ionic Angular JS cookie 不起作用
- 为什么这个javascript cookie代码不起作用
- Javascript -检查页面加载时是否存在cookie对我来说不起作用
- 在javascript中删除cookie不起作用
- Internet Explorer: cookie的过期日期不起作用
- 添加到document.cookie不起作用
- 跨域 Cookie 不起作用