[英]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.