【问题标题】:Setting third party cookie by using 1x1 <img> tag - Javascript doesn't drop cookie使用 1x1 <img> 标签设置第三方 cookie - Javascript 不会删除 cookie
【发布时间】:2013-01-19 15:32:02
【问题描述】:

我一直在尝试使用以下方法设置第三方 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);

?>

【问题讨论】:

    标签: javascript cookies image party


    【解决方案1】:

    您的问题完全基于您使用的&lt;img&gt;-tag。不会在图像中执行任何 JavaScript 代码。

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

    如果您使用&lt;iframe&gt;-tag,一切都会正常工作,因为客户端可以读取和执行您的 JS 代码:

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

    但如果您尝试通过 &lt;img&gt;-tag 设置 cookie,则需要使用 server-side 语言(如本例中的 PHP)来完成。

    Doubleclick 等机构使用 iframe、您可以插入页面的 javascript sn-ps 或|和服务器端解决方案。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 2011-02-03
      • 2021-11-28
      • 1970-01-01
      • 2018-11-25
      • 2011-03-22
      相关资源
      最近更新 更多