苏飞论坛

标题: cookie跨域访问问题 [打印本页]

作者: 范范    时间: 2017-10-27 20:44
标题: cookie跨域访问问题
    今天工作,遇到了cookie跨域访问问题,百度了很多帖子,基本上都是domain相同的二级域名访问,这个是没有任何问题,主要是domain不同,例如:     A. www.baidu.com
     B. fanyi.baidu.com
     C. ww.qq.com
     这样的三个域名间cookie访问,A、B间的cookie访问是没有问题,因为domain是相同的,都是‘baidu.com’,但是C再去访问A、B上的cookie就存在了cookie 的跨域访问问题,我这边也使用了很多方法,但是都没有解决,大家可以集思广益下,帮忙解决下问题哈



作者: 范范    时间: 2017-10-27 20:51
我这边最后的简单解决方法,也就是治标不治本的方法,就是使用js的jsonp方式,进行处理,代码如下
[JavaScript] 纯文本查看 复制代码
<script type="text/javascript">
        var puId = 0;
        var cuId = 0;
        var callBack = function (data) {
                if (data.pu) {
                        puId = data.pu.Uid;
                        var pname = data.pu.Uname.length > 3 ? (data.pu.Uname.substring(0, 3) + '...') : data.pu.Uname;
                        var html = "";
                        html += "<a class=\"gh-login-ok\" target=\"_blank\" href=\"http://my.baidu.com/index.aspx\">";
                        html += "    <img class=\"gh-face\" src=\"" + data.pu.ULogo + "\">";
                        html += "    <span class=\"nick\">" + pname + "</span>";
                        html += "</a>";
                        html += "<a href=\"/pub/MainSite.ashx?jsoncallback=?&action=LoginOut\">退出</a>";

                        $('.gh-login').html( html );
                }if (data.cu) {
                        puId = data.cu.Uid;
                }
        };
        $.ajax({
                async: false,
                dataType: "jsonp",
                jsonp: "callback",
                type: "get",
                url: 'http://www.baidu.com/pub/MainMaster.ashx?action=checkLogin&=' + new Date().getTime(),
                success: callBack
        });
</script>


在页面上定义一个js的全局变量,使用jsonp,访问A、B相同的domian - ‘baidu.com’存储的cookie读取,然后返回,存储到页面的全局变量中,共全局使用



作者: 范范    时间: 2017-10-27 20:51
不过这个方法就是简单的,还是没有解决根本问题的,大家可以说说其它方法,共同学习下哈
作者: 范范    时间: 2017-10-27 20:52
在中间的时候,还测试了很奇特的方法,就是把所有的domain都进行cookie添加,然后想着就可以解决cookie跨域问题,结果发现,根本就存不上去
作者: 站长苏飞    时间: 2017-10-27 21:07
1.Cookie只能写写入同一域名下,要写别的域名下的Cookie,页面必须是在当前域名下。
2.要解决多个顶级域名的问题,要单独出来一个域名做为登录中间过度,否则所有的登录状态都只能靠JS来维持。
作者: 范范    时间: 2017-10-27 21:21
是哒, 查了资料,就是单点登陆方式,还没有开始调整




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4