2013-11-23 60 views
0

我想使用javascript [document.cookie]在salesforce apex頁面url中設置Cookie,並在同一瀏覽器的其他域中獲取這些cookie。使用javacript但無法獲得。使用javascript設置和閱讀使用兩個不同域的cookie

其實我的Apex頁面,我加載的iframe和那個時候我設置該cookie,並獲得這些cookie在salesforce域外的另一個頁面。

任何機構都有任何想法如何設置和獲取Cookie使用不同的域。

+0

在另一個領域,因爲你不能讀取cookies它帶來安全風險 –

回答

2

出於安全原因,無法讀取其他域創建的Cookie。我也相信瀏覽器處理cookie的域方面的創建,所以我不相信有可能從另一個域創建一個cookie。

我不認爲你要問什麼是可能在不同的域(子域將工作)

0

這是行不通的,你想要的方式。您無法讀取其他域的Cookie。您可以考慮使用跨窗口消息傳遞 - 尤其是在使用iframe的情況下。

+0

你能解釋一下關於i-frame的謠言嗎? –

+0

網頁和嵌入式iframe可能通過簡單的消息傳遞系統進行通信。你可以在這裏找到一個描述,例如:https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage?redirectlocale=en-US&redirectslug=DOM%2Fwindow.postMessage 這樣你可以使用一個iframe作爲某種代理與域進行通信。 – Alex

+0

原點之間溝通的另一種方式是CORS。只是谷歌它。你可以在這裏找到CORS和使用消息傳遞的iframe之間的比較:http://stackoverflow.com/questions/8186581/benefit-of-cors-over-cross-domain-messaging – Alex

0

出於安全原因,無法讀取其他域創建的Cookie。爲了獲得閱讀同一域的Cookie使用下面的代碼

if (navigator.cookieEnabled) { 
    cookieArray = document.cookie.split(";"); 
    cookieArray.forEach(myFunction); 

    function myFunction(item, index) { 
     if (item.split("=")[0] == " yourcookiename" || item.split("=")[0] == "yourcookiename") { 
      userSubID = item.split("=")[1]; 
      console.log("yourcookiename " + yourcookiename) 
     } 
    } 
} 

如果有更多的,你必須使用一個曲奇「(空格)yourcookiename」和「yourcookiename」得到的cookie VALES

相關問題