当脚本从另一个域加载时,无法从 PHP 读取 Internet Explorer 中的 cookie

Cannot read cookie in Internet Explorer from PHP when script is loaded from another domain

本文关键字:读取 PHP Internet 中的 cookie Explorer 另一个 脚本 加载      更新时间:2023-09-26

好的,这有点复杂:

  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. 我从域bar.com调用脚本<script src='http://foo.com/script.php'>,该域加载通过 php 输出的 javascript 文件


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

现在,当我在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。

任何想法都高度赞赏。

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

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