我一直在尝试使用以下方法设置第三方Cookie:
站点A
<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);
?>
答案 0 :(得分:2)
您的问题绝对基于您正在使用的<img>
标记。不会在图像中执行JavaScript代码。
如果你通过PHP来实现它的原因是因为服务器在请求文件时预处理你的代码。虽然这可能不会显示任何内容,因为您没有提供任何有效的图像标题。
如果您使用<iframe>
- 标签,一切都会有效,因为客户端可以读取并执行您的JS代码:
<iframe src='http://www.siteB.co.uk/cookie.php'></iframe>
但是,如果您尝试按<img>
- 标记设置Cookie,则需要在此示例中使用PHP等server-side
语言来执行此操作。
像Doubleclick这样的代理商使用iframe,您可以将javascript片段插入到您的页面或服务器端解决方案中。
希望这有帮助。