Cookies 如何通过附加在域B中的内联javascript从域B读取由域A设置的cookie?

Cookies 如何通过附加在域B中的内联javascript从域B读取由域A设置的cookie?,cookies,cross-domain,jsonp,Cookies,Cross Domain,Jsonp,我正试图通过放置在域B中的内联javascript代码从域B读取由域A设置的cookie(我知道cookie的名称) 域B内联javascript代码: <script type="text/javascript"> /* * * DON'T EDIT BELOW THIS LINE * * */ (function() { var dsq = document.createElement('script'); dsq.type

我正试图通过放置在域B中的内联javascript代码从域B读取由域A设置的cookie(我知道cookie的名称)

域B内联javascript代码:

<script type="text/javascript">
        /* * * DON'T EDIT BELOW THIS LINE * * */
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = 'http://domainA.com/classifiead/embed.js';
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
        })();

    </script>
包含:

     $("#jsonpbtn2").click(function() {

   var url = 'http://domainA.com/classifiead/content2.php?callback=?'; 
  //  var id = info;
   $.getJSON(url, null, function(data) {
                 $('#textDiv').append(data.somecookie);
     });
});
<?php 
 header('Content-type: application/json');
 header('Access-Control-Allow-Origin: *');
 header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
 header("Access-Control-Allow-Credentials: true");
 header("Access-Control-Allow-Headers: Content-Type, *");
 header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

 $rtnjsonobj->id = 'test skdfbslkdj';
 $rtnjsonobj->somecookie =$_COOKIE['thisweb_last_75'];
echo $_GET['callback']. '('. json_encode($rtnjsonobj) . ')';  

是,如果您在域A的服务器端执行代码。当您的JavaScript代码从域A接收cookie时,您可以将cookie发送到域B

如果cookie是安全cookie或httponly,则只能通过服务器端脚本读取它

我建议您阅读以下内容:

请注意:在您的示例中,您应该在指定属性之前创建对象。例如:

$rtnjsonobj = new stdClass();
$rtnjsonobj->id = 'test skdfbslkdj';
$rtnjsonobj->somecookie =$_COOKIE['thisweb_last_75'];

关于域B,如果没有,有什么方法可以做到这一点吗?在您的示例中,不清楚cookie是何时从域A设置的。cookie是在域A上设置的,当同一用户登录到域A时,如何在不同的域之间共享cookie?您是否尝试创建
超级cookie
?“Supercokie”是带有公共后缀域的cookie,如.com、.co.uk或k12.ca.us。另一方面,如果需要在javascript中交换来自不同域的数据,可以尝试使用
addEventListener
postMessage
方法。