使用1×1标记设置第三方cookie – Javascript不会丢弃cookie

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

站点A

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

网站B

<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,则需要在此示例中使用PHP等服务器端语言.

像Doubleclick这样的代理商使用iframe,您可以将javascript片段插入到您的页面或服务器端解决方案中.

希望这可以帮助.

点赞