Cookies 如何通过附加在域B中的内联javascript从域B读取由域A设置的cookie?
我正试图通过放置在域B中的内联javascript代码从域B读取由域A设置的cookie(我知道cookie的名称) 域B内联javascript代码: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
<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
方法。