javascript - 使用 1x1 <img> 标签设置第三方 cookie - Javascript 不会丢弃 cookie

标签 javascript cookies image party

我一直在尝试使用以下方法设置第三方 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 内容类型 header 来说明 .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> -标记一切都会起作用,因为客户端可以读取和执行您的 JS 代码:

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

但是如果您尝试通过 <img> 设置 cookie -tag 你需要用 server-side 来做本例中的 PHP 之类的语言。

像 Doubleclick 这样的机构使用 iframe、您应该插入到页面中的 javascript 片段或|以及服务器端解决方案。

希望这对您有所帮助。

关于javascript - 使用 1x1 <img> 标签设置第三方 cookie - Javascript 不会丢弃 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14415860/

相关文章:

javascript - 访问评论

java - 查明浏览器是否支持服务器端的cookie

python - 需要一些关于 python 中的 Cookie 处理和 session 的帮助

c# - 使用 Cookie 进行 MVC 单元测试

c# - 如何仅验证使用 asp.net web api 上传的图像?

javascript - 如何使用javascript获取下拉列表的选定值

javascript - 执行RoR中通过ajax请求返回的javascript

Java : Getting an exception "File error not an image file" while trying to read an image

javascript - 在循环中调用图像会产生重叠变量

javascript - 加载时的窗口调度事件不适用于内联脚本