繁体   English   中英

使用1x1设置第三方Cookie <img> 标签-Javascript不会删除Cookie

[英]Setting third party cookie by using 1x1 <img> tag - Javascript doesn't drop cookie

我一直在尝试使用以下方法设置第三方Cookie:

SiteA

<img src="http://www.siteB.co.uk/cookie.php" />

SiteB

<script>

    document.cookie = "name=thirdpartytest; expires=07/07/2013; path=/;domain=SiteB.co.uk";

</script>

当我访问SiteB / cookie.php时,cookie会按预期下降。 但是访问SiteA不会删除任何cookie。

当我使用相同的方法但使用PHP删除cookie时,它的效果很好。 在这种情况下,为什么Javascript不会删除cookie? 我认为可能是因为没有发送HTTP内容类型标头来表示.php页面是图像。 但是我似乎并不需要它来使PHP版本的代码正常工作。

有什么想法如何使它使用JS吗? 可能吗? 例如,Doubleclick如何做到这一点?

供参考:这是成功删除cookie的PHP代码

<?php 
$CookieName = "my3Pcookie";    // Cookie's name
$CookieValue = "hello, there"; // Cookie's value
$CookieDirectory = "/";        // Cookie directory ("/" for all directories)
$DaysCookieShallLast = 31;     // Days before expiration (decimal number okay.)


$lasting = ($DaysCookieShallLast<=0) ? "" : time()+($DaysCookieShallLast*24*60*60);
setcookie($CookieName,$CookieValue,$lasting,$CookieDirectory);

?>

您的问题肯定是基于所使用的<img> -tag。 图像中不会执行JavaScript代码。

如果通过PHP进行操作,它之所以起作用,是因为服务器在请求文件时正在预处理您的代码。 虽然这可能不会显示任何内容,因为您没有提供任何有效的图像标题。

如果您使用<iframe> -tag,那么一切都会正常,因为客户端可以读取并执行您的JS代码:

<iframe src='http://www.siteB.co.uk/cookie.php'></iframe>

但是,如果您尝试通过<img> -tag设置cookie,则在此示例中需要使用server-side语言(如PHP)来进行设置。

诸如Doubleclick之类的代理商可以与iframe一起使用,您可以在页面中插入的javascript代码段或服务器端解决方案。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM