本地单纯的一个html文件(没有服务器归属)在谷歌浏览器中cookie无效,其它浏览器好像都可以正常读写的,如果你确定cookiejs没有问题的话,注意一下id是不是重复了(你上面的代码就出现了id重复),还有body不是在head里面的
使用js检测Cookie的话,可以让js执行定时任务,定期检测,我给你写段代码
方法一://使用jquery的cookie方法,之前必须引入jquerycookiejs文件,在网上可以下载到//每隔1秒,执行cookie检测函数
setTimeout("checkCookie()",1000);
//检测cookie函数,如果cookie为空则跳转到登陆页
function checkCookie() {
if($cookie("qqlogin") == "" || $cookie("qqlogin") == null) {
windowlocationhref = "loginhtml";
}
}
方法二:使用js获取cookie
//定义一个函数,用来读取特定的cookie值
function getCookie(cookie_name) {
var allcookies = documentcookie;
var cookie_pos = allcookiesindexOf(cookie_name); //要获取COOKIE的索引长度
//如果找到了索引,就代表cookie存在,
//反之,就说明不存在。
if (cookie_pos == '') {
windowlocationhref = "loginhtml";
}
}
// 调用函数
//每隔1秒,执行cookie检测函数
setTimeout("getCookie('getCookie')",1000);
注:方法二未经测试。
正常情况下,浏览器禁止跨域获取cookie
一般通过sso服务可以实现取得跨域cookie,思路如下:
域A页面访问位于域A的服务器,对权限进行验证
域A服务器于域B服务器通信,记录一个唯一的加密串用作身份验证域(并将cookie信息发送给域B服务器)
域A服务器返回302跳转,跳转到域B下,并将加密串作为url的一部分
页面由域A跳转到域B,域B服务器通过加密串获取到事先从域A服务器上得到的cookie信息,并在响应头中添加set-cookie字段设置cookie
以上就是关于js设置不了cookie全部的内容,包括:js设置不了cookie、求一段JS代码实时检测Cookies、如何用js实现跨域获取cookie等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)