cookie在jquery中有指定的cookie *** 作类,下面我先来介绍我们在使用cookie *** 作类时的一些问题,然后介绍正确的使用方法。
使用JQuery *** 作cookie时 发生取的值不正确的问题:
结果发现cookie有四个不同的属性:
名称,内容,域,路径。
正常情况下,浏览器禁止跨域获取cookie
一般通过sso服务可以实现取得跨域cookie,思路如下:
域A页面访问位于域A的服务器,对权限进行验证
域A服务器于域B服务器通信,记录一个唯一的加密串用作身份验证域(并将cookie信息发送给域B服务器)
域A服务器返回302跳转,跳转到域B下,并将加密串作为url的一部分
页面由域A跳转到域B,域B服务器通过加密串获取到事先从域A服务器上得到的cookie信息,并在响应头中添加set-cookie字段设置cookie
如何使用js来获取cookie的值,读取属于当前文档的所有cookies,参考如下:
var allcookies = documentcookie;
定义一个函数,用来读取特定的cookie值。
function getCookie(cookie_name)
{
var allcookies = documentcookie;
var cookie_pos = allcookiesindexOf(cookie_name); //索引的长度
// 如果找到了索引,就代表cookie存在,
// 反之,就说明不存在。
if (cookie_pos != -1)
{
// 把cookie_pos放在值的开始,只要给值加1即可。
cookie_pos += cookie_namelength + 1;
var cookie_end = allcookiesindexOf(";", cookie_pos);
if (cookie_end == -1)
{
cookie_end = allcookieslength;
}
var value = unescape(allcookiessubstring(cookie_pos, cookie_end)); //这里就可以得到想要的cookie的值了。
}
return value;
}
// 调用函数
var cookie_val = getCookie("username");
<script type="javascript/text">
$(documetn)(function(){
if($cookie("span"))
{
var $index=$cookie("span");<!--从cookie里取最后单击的span-->
$("span")removeClass("on")eq($index)addClass("on");
}
$("span")click(function(){
var $index=$(this)index();
$cookie("span",$index);
$(this)addClass("on")siblings("span")removeClass("on");
});
});
</script>
以上就是关于JS、JQ,从cookie中取出保存到cookie的数组全部的内容,包括:JS、JQ,从cookie中取出保存到cookie的数组、如何用js实现跨域获取cookie、静态页面怎么用js获取cookie等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)