使用 1x1 标签设置第三方 cookie - Javascript 不会删除 cookie

2023-12-27

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

当我直接访问 Site/cookie.php 时,cookie 按预期删除。但访问 SiteS 不会删除任何 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>- 您正在使用的标签。图像中不会执行 JavaScript 代码。

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

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

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

但是如果你尝试通过以下方式设置cookie<img>-标记你需要用server-side语言如本例中的 PHP。

Doubleclick 等机构使用 iframe、您需要插入到页面或服务器端解决方案中的 JavaScript 片段。

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 1x1 标签设置第三方 cookie - Javascript 不会删除 cookie 的相关文章

随机推荐