2015-04-06 127 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