2015-04-06 79 views
0

有页面domain.com,其中包括来自server.com的javascript。使用jquery cookie的第三方cookie

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

在这个剧本我可以easee设置Cookie来domain.com:

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

我需要设置server.com饼干,后来读它。我读过我可以设置第三方cookie,如果我从它加载内容。为什么我不能设置饼干像波纹管?

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

我希望不能这样做。你有几个替代方法,请参阅此链接 - http://stackoverflow.com/questions/6761415/how-to-set-a-cookie-for-another-domain – Arjun

回答

10

首先,了解第一方cookie和第三方cookie之间的差异很重要。

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

第三方Cookie是您为与当前所在页面的域不同的域设置的cookie。浏览器中有一个单独的安全设置,用于确定是否允许您设置第三方Cookie。所以,如果你在aaa.com上,你可以设置一个用于bbb.com页面的cookie。尽管您可以为不同的网域设置第三方Cookie,例如bbb.com,,但您无法从aaa.com中的某个网页读取该bbb.com Cookie,其中有。只有来自bbb.com的网页才能读取该cookie。

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

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

+0

谢谢你这样一个详细的回应。你能提供一个指向它的文件或标准的链接吗? – Mario