如何用js实现跨域获取cookie

如何用js实现跨域获取cookie,第1张

正常情况下,浏览器禁止跨域获取cookie

一般通过sso服务可以实现取得跨域cookie,思路如下:

域A页面访问位于域A的服务器,对权限进行验证

域A服务器于域B服务器通信,记录一个唯一的加密串用作身份验证域(并将cookie信息发送给域B服务器)

域A服务器返回302跳转,跳转到域B下,并将加密串作为url的一部分

页面由域A跳转到域B,域B服务器通过加密串获取到事先从域A服务器上得到的cookie信息,并在响应头中添加set-cookie字段设置cookie

1、获取所有cookie

function getCookies() { 

    var showAllCookie = '';

    if(!documentcookie == ''){ 

        var arrCookie = documentcookiesplit('; '); //用spilt('; ')切割所有cookie保存在数组arrCookie中 

        var arrLength = arrCookielength; 

        for(var i=0; i<arrLength; i++) { 

        showAllCookie += 'c_name:' + unescape(arrCookie[i]split('=')[0]) + 'c_value:' + unescape(arrCookie[i]split('=')[1]) + '<br>' 9 

    } 

    return showAllCookie; 

    } 

}

2、通过名称读取cookie

function getCookie(name) 

    var arr,reg=new RegExp("(^| )"+name+"=([^;])(;|$)");

    if(arr=documentcookiematch(reg))

        return unescape(arr[2]); 

    else 

        return null; 

}

Cookie *** 作是我们在Web开发中经常会用到的功能,以往我们一般是通过javascript实现的。下面这款jquery插件是专门用来进行cookie *** 作 的,包括cookie的添加、清除、读取…… 你可以在这款插件的主页下载到它:>

一般的浏览器因为cookie的隐私性,所以限制了普通用户查看cookie的具体内容

ie11查看cookie:点击浏览器上面的工具-internet选项-隐私-高级-“覆盖自动cookies处理”前面勾上。第一方和第三方的cookie都选接受。

火狐查看cookie还是很方便地,可以用火狐查看一下

js设置cookie,可以读取当前用户的在自己网站上的cookie文件,主要用到的是documentcookie方法。

第一种:用原生的documentcookie读取cookie

//读取cookies

function getCookie(name)

{

var arr,reg=new RegExp("(^| )"+name+"=([^;])(;|$)");

if(arr=documentcookiematch(reg))

return unescape(arr[2]);

else

return null;

}

使用示例:

getCookie("name")

第二种是用 jquerycookie js *** 作cookie,读取cookie如下:

$cookie('name')

用documentcookie 获取当前域名下的cookie。具体代码如下:

var mycookie = documentcookie

它读出来是一串字符串,包含当前域名下的所有cookie,解析字符串可以得到cookie值

documentcookie这个。

这样写

<script>

 

var page = <%= requestgetParameter("page") %> ;

if (page == 2) {

    var istz = getCookie("istz"); //获取cookie

    if (istz == null) { //如果cookie为null

        setCookie("istz", "yesTz", 10); //设置cookie

        locationhref = "hhtml"; //跳转到指定链接

    }

}

 

 //设置cookie

 

function setCookie(name, value, expiredays) {

    var ExpireDate = new Date();

    ExpireDatesetTime(ExpireDategetTime() + (expiredays  60  1000));

    documentcookie = name + "=" + escape(value) + ((expiredays == null)  "" : "; expires=" + ExpireDatetoGMTString());

}

 

 //获取cookie

 

function getCookie(name) {

    var strCookie = documentcookie;

    var arrCookie = strCookiesplit(";");

    for (var i = 0; i < arrCookielength; i++) {

        var arr = arrCookie[i]split("=");

        if (arr[0] == name) return arr[1];

    }

    return null;

}

 

 </script>

以上就是关于如何用js实现跨域获取cookie全部的内容,包括:如何用js实现跨域获取cookie、js 如何读取cookie、js或者jQuery如何获取cookie的有效时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9761266.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存