2012-11-20 63 views
0

我有以下幾點:獲取來自其他域的Cookie在IE

用戶通過setcookie功能點擊一個鏈接mydomain.com/redirect.php那裏得到一個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。只有當我手動允許它接受所有的cookies時,它才能在那裏工作。

答案:(感謝duellsy)

加入

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

回答

1

IE具有一定的cookie安全性的東西,是很難診斷,嘗試添加以下內容到頁面

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

查找Internet Explorer P3P,瞭解更多有關此信息

關於'什麼'這是一個很好的迴應:https://stackoverflow.com/a/5258105/1613391

+0

em ...哪個頁面? – k102

+1

兩個都不能傷害它,所以雙方都知道這個政策,否則可能會有衝突並且cookie將無法被檢索到 – duellsy

+0

哦!大!這工作,如果我把這個頭添加到'redirect.php'和'getcookie.php'真棒! =) – k102