从IE中的其他域获取cookie

时间:2012-11-20 12:31:47

标签: php javascript internet-explorer cookies

我有以下内容:

用户点击链接mydomain.com/redirect.php,通过setcookie功能获取Cookie(适用于mydomain.com),然后转到另一个页面(header('Location: ...');) - 说lp.html

然后,在该页面上有一个脚本: gs('mydomain.com/getcookie.php', 'client=52', function() {});,此功能如下:

gs = function(path, args, fn) {
        var p = document.head || document.getElementsByTagName("head")[0]
        var s = document.createElement("script");
        p.appendChild(s);
        if (fn) {
            if (s.addEventListener) {
                s.addEventListener('load', fn, false);
            } else if (s.attachEvent) {
                s.attachEvent("onload", function() {
                    fn(window.event)
                });
            } else {
                s["onload"] = fn;
            }
            s.onreadystatechange = function() {
                fn()
            }
        }
        s.src = path + "?" + args;
}

getcookie.php脚本从$_COOKIE获取一个值(因为它在我的域中)并返回一个小js,如下所示:myParam = 'cookieValue';以供稍后在js中使用。

所以,这很好用......除了Internet Explorer。只有当我手动允许它接受所有cookie时,它才能在那里工作。

回答 :(感谢duellsy)

添加

header('P3P: CP="CAO PSA OUR"');
header('P3P: CP="HONK"');

1 个答案:

答案 0 :(得分:1)

IE有一些很难诊断的Cookie安全问题,请尝试将其添加到页面顶部

<?php header('P3P: CP="CAO PSA OUR"'); ?>

查找Internet Explorer P3P,以了解有关此

的更多信息

关于“这是什么”的问题,对SO的反应很好:https://stackoverflow.com/a/5258105/1613391