本文目录一览:
- 1、js 在chrome下无法对cookie进行操作,求解决方案
- 2、javascript无法写入cookie,跪求解决办法
- 3、js设置不了cookie
- 4、js 怎么重新设置cookie
- 5、js设置cookie的简单方法
- 6、深入理解cookie
js 在chrome下无法对cookie进行操作,求解决方案
此函数兼容IE和火狐.Chrome应该在可以.你可以试试
写入cookies:setCookie("Name","Value");
读取cookies:getCookie("Name");
function getCookie(name){
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i clen){
var j = i + alen;
if(document.cookie.substring(i, j) == arg)
return getCookieVal(j);
i = document.cookie.indexOf(" ", i) + 1;
if(i == 0) break;
}
return null;
}
function setCookie(name,value){
var argv = setCookie.arguments;
var argc = setCookie.arguments.length;
var expires = (argc 2) ? argv[2] : null;
var path = (argc 3) ? argv[3] : null;
var domain = (argc 4) ? argv[4] : null;
var secure = (argc 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toUTCString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
function getCookieVal(offset){
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
javascript无法写入cookie,跪求解决办法
您好:给您写一个读写Cookei的js方法.直接用就可以
//写cookie操作,调用方法setCookie(name,value);
function setCookie(name, value, hours, path, domain, secure) {
var cdata = name + "=" + value;
if (hours) {
var d = new Date();
d.setHours(d.getHours() + hours);
cdata += "; expires=" + d.toGMTString();
}
cdata += path ? ("; path=" + path) : "";
cdata += domain ? ("; domain=" + domain) : "";
cdata += secure ? ("; secure=" + secure) : "";
document.cookie = cdata;
}
//读cookie操作
function getCookie(name) {
var reg = eval("/(?:^|;\\s*)" + name + "=([^=]+)(?:;|$)/");
return reg.test(document.cookie) ? RegExp.$1 : "";
}
//删除cookie操作
function removeCookie(name, path, domain) {
this.setCookie(name, "", -1, path, domain);
}
如果帮到您,希望采纳哦
js设置不了cookie
本地单纯的一个html文件(没有服务器归属)在谷歌浏览器中cookie无效,其它浏览器好像都可以正常读写的,如果你确定cookie.js没有问题的话,注意一下id是不是重复了(你上面的代码就出现了id重复),还有body不是在head里面的
js 怎么重新设置cookie
这个看你有没有使用cookie的插件
如果使用,可以看看具体的插件使用指导
例如:不同的 系统可能会用不同的创建,像傲隆盛 jquery.cookie.js或者看如下的小案例:
1.生成一个cookie,名称为user,内容为liayun:
$.cookie("user","liayun");
2.cookie的参数设置:
$.cookie("user","liayun", {
expires:7, //过期时间,7天后过期
path:"/", //根目录,path的作用就是设置路径,根目录到底所谓何???
});
$.cookie("aaa","bbb", {
//domain:"" //设置域名,可以发现名为aaa的cookie并没有建立,为何???
secure:true //发送条件:仅限加密连接 默认为false,需要使用安全协议https
});
综上所述,除了expires这个参数有用,其他根本就没什么鸟用!!!
3.读取cookie数据:
alert($.cookie("user")); //liayun
alert($.cookie("aaa")); //undefined,名为aaa的cookie的参数secure为true,因为需要使用安全协议https,而我们一般使用http协议,所以返回undefined
$.cookie("ccc",""); //自动编码为:%E6%9D%8E%E9%98%BF%E6%98%80
alert($.cookie("ccc")); //自动解码为:
4.关闭编码/解码,默认为false:
$.cookie.raw = true;
$.cookie("ddd",""); //没有自动编码,
alert($.cookie("ddd")); //
5.读取所有cookie数据:
alert($.cookie());
js设置cookie的简单方法
一,js设置cookie的用处
php可以设置cookie的,用js来设置cookie有什么好处呢?在前端进行操作时,有的时候要传很多参数,这个时候,我们可以把这些参数拼接到url后面进行传值,那边在接收参数,不过这样挺麻烦的,如果把这些数据放到cookie里面,就开发者的开发效率来说,我想会高一些,以淘宝为例,他有一级分类,二级分类,三级,四级,我们找商品的时候,可能会牵扯到很多条件,如果把这些条件都放到cookie里面,我感觉就方便多了,不知道淘宝是不是这样的。淘宝的url是加了密的,并且好长,有可能是根在url的后面。费话不多说看一个小例子。
二,js实例
调用一下上面方法:
setCookie("test","tank",1800); //设置cookie的值,生存时间半个小时
alert(getCookie('test')); //取得cookie的值,显示tank
clearCookie("test"); //删除cookie的值
alert(getCookie('test')); //test对应的cookie值为空,显示为false.就是getCookie最后返的false值。
深入理解cookie
看个实际生活的例子:
学校门口有家饭店味道不错,小明去吃了一次,确实味道不错,这周小明又去这家饭店吃饭,结账时,小明说:”我上周来过,这是第二次了,能不能打个折?“。老板说:”你来过?我不记得啊(无状态)“。小明表示很生气,明明来过老板竟然不记得。老板想了个法子,给小明发了张卡片(cookie),上面写着小明的信息,下次小明拿着卡片来老板就认识了。
回到正题,cookie用在http请求中,而http是无状态协议,它的每个请求都是完全独立的,服务端无法判别用户状态,cookie用来告诉服务端用户的状态信息。客户端用户第一次发送请求给服务端时,服务端在返回的响应中发给用户一个cookie,里面记录了用户的信息,下次用户再发送http请求给服务端时,会携带上cookie,服务端检查cookie获取用户的状态信息。
cookie的内容主要是服务端写入的,由客户端存储在本地,cookie其实是以字符串的形式存储的。打开谷歌开发者工具的Application中的Cookie,可以看到cookie具有以下字段
cookie以键值对的形式存储用户数据
不同域名是无法操作彼此cookie的,而且必须满足path一样或者是其子路径才能相互访问彼此的cookie。
domain用来设置可以使用cookie的域名,如果想让一级域名下的两个二级域名都能使用cookie,例如imag.baidu.com和,可以设置domain为baidu.com,但不能设置为.com,这样两个二级域名都能使用。path属性设置允许使用cookie的路径,例如设置为根路径"/",表示允许根路径以及根路径下的所有子路径都可以使用cookie
所以domain和path共同决定了cookie能否被浏览器自动添加到请求头部中发送出去。如果没有设置这两个选项,则会使用默认值。domain的默认值为设置该cookie的网页所在的域名,path默认值为设置该cookie的网页所在的目录。
此外,如果是跨域请求,例如XMLHttpRequest请求,默认是不会自动携带cookie的。
cookie的过期时间,Expires是具体日期,Max-Age是一段时间
cookie的大小,一般是4k,此外cookie的个数也有限制,不同浏览器cookie的个数限制不同
该cookie数据是否只用来在http请求中传递,默认为false,如果设置该字段为true,客户端无法用js访问或者操作该cookie,这条cookie信息不会出现在document.cookie的字符串中。
默认为false,设置该字段为true则该cookie不会携带在http协议的请求中,只能携带在安全的https协议请求中
当网页要发http请求时,浏览器会先检查是否有相应的cookie,有则自动添加在request header中的cookie字段中。这些是浏览器自动帮我们做的,而且每一次http请求浏览器都会自动帮我们做。这个特点很重要,因为这关系到“什么样的数据适合存储在cookie中”。
因为每次浏览器发送http请求都会自动携带cookie,会增加网络开销,所以最好只存放每次请求都需要发送给服务端的数据,比如身份认证信息。
客户端使用js设置 cookie,客户端可以设置cookie 的下列选项:expires、domain、path、secure(有条件:只有在https协议的网页中,客户端设置secure类型的 cookie 才能成功),但无法设置HttpOnly选项。document.cookie可以获取cookie字符串,也可以设置cookie。
document.cookie="age=12; expires=Thu, 26 Feb 2116 11:50:25 GMT; domain=sankuai.com; path=/";
值得注意的是,浏览器提交Cookie时只会提交name和value属性,maxAge属性只被浏览器用来判断Cookie是否过期。
当要设置多个cookie时,必须重复设置document.cookie = "key=name"。
要想修改一个cookie,只需要重新赋值就行,旧的值会被新的值覆盖。但要注意一点,在设置新cookie时,path/domain这几个选项一定要旧cookie 保持一样。否则不会修改旧值,而是添加了一个新的 cookie。删除一个cookie 也挺简单,也是重新赋值,只要将这个新cookie的expires 选项设置为一个过去的时间点就行了。但要注意,path/domain/这几个选项一定要旧cookie 保持一致。
服务端的response header中有一项叫set-cookie,是服务端专门用来设置cookie的。