javascript - 使用 jquery cookie 的第三方 cookie

标签 javascript jquery cookies

有页面domain.com,其中包含来自server.com的javascript。

<script src="https://server.com/script.js"></script>

在此脚本中,我可以轻松地将 cookie 设置为domain.com:

$.cookie('name', {
    data : data
    }, {
    path: '/',
    expires: 10,
    domain: 'domain.com'
});

我需要在 server.com 上设置 cookie 并稍后读取它。我读到,如果我从中加载内容,我可以设置第三方 cookie。为什么我不能像下面这样设置 cookie?

$.cookie('name', {
    data : data
    }, {
    path: '/',
    expires: 10,
    domain: 'server.com'
});

最佳答案

首先,了解第一方 Cookie 和第 3 方 Cookie 之间的区别非常重要。

第一方 Cookie 是您设置为与当前页面相同的域的 Cookie。只要浏览器中启用了cookie,您就可以设置该cookie,并且只要您所在的页面与cookie的域匹配并且cookie中设置的路径与页面的路径兼容,您就可以读取它你是其中之一。任何其他域的页面都无法读取此 cookie。

第三方 Cookie 是您为与当前所在页面的域不同的域设置的 Cookie。浏览器中有一个单独的安全设置,可以决定是否允许您设置第 3 方 cookie。因此,如果您访问 aaa.com,您可以设置一个用于 bbb.com 页面的 cookie。即使您可以为不同的域(例如 bbb.com)设置第 3 方 cookie,您也无法从 aaa.com 的页面读取该 bbb.com cookie。只有 bbb.com 的页面可以读取该 cookie。

此功能有时被广告服务用于跟踪目的,以帮助跨多个域跟踪给定用户。它还可用于帮助在使用多个域的合作站点之间共享凭据。

重要的是要理解,第一方 Cookie 和第三方 Cookie 之间的区别仅在某些代码尝试设置 Cookie 时存在,并且该区别用于将不同的安全规则应用于 Cookie 的创建。一旦创建 cookie,它就与任何其他 cookie 相同。您永远无法从其他域读取 cookie,只有标记有与当前页面域匹配的域的 cookie 才会发送到该服务器或允许通过 Javascript 从该页面读取。第三方 cookie 的概念实际上只是一种特定情况,您可以为另一个域设置 cookie。您永远无法从另一个域读取 cookie。

关于javascript - 使用 jquery cookie 的第三方 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29474873/

相关文章:

javascript - 查找 "this"的名称

javascript - php session 随机丢失,无法理解为什么

javascript - 即使显式设置了宽度和高度,div 也会扩展以适应内容

javascript - 类型转换和函数签名

javascript - 如何通过比较表格等时间表来动态更改单元格的颜色

firefox - D3JS V5.5 - CSV FireFox 请求不使用 cookie

php - 在 URL 中传输 session ID( session trans_sid 等效 Laravel)

javascript - setBackgroundImage 无法按预期使用多个功能

javascript - 如何检查响应是否属于特定接口(interface)类型?

javascript - 如何检查字符串是类还是 ID,然后将它们剥离以获得名称?