从其他域加载脚本时,无法从PHP读取Internet Explorer中的cookie

时间:2016-01-24 20:45:37

标签: javascript php internet-explorer cookies

好的,这有点复杂:

  1. 我使用php:

    在域foo.com上设置了一个cookie

    header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); setcookie("c", "value", strtotime( '+30 days' ));

  2. 我从域<script src='http://foo.com/script.php'>调用脚本bar.com来加载通过php输出的javascript文件

    header('Content-Type: application/javascript');
    echo $_COOKIE['c'];

  3. 现在,当我在Chrome,Firefox,Edge或Internet Explorer中打开http://foo.com/script.php时,它会显示value
    当我从bar.com加载脚本时,它还会在Chrome,Edge(!)和Firefox中显示value,但在Internet Explorer 10/11中,Cookie未设置且无法读取

    我不明白为什么没有在IE中设置cookie,因为我从最初设置cookie的foo.com加载脚本。因此,脚本应该可以访问cookie。

    任何想法都受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

您使用哪些本地域名来调用这些脚本?

我记得IE有时候它接受cookie的域名很奇怪,它们需要包含至少一个点. - 这样的localhost这样的名称往往会引起这方面的问题。