我想使用javascript [document.cookie]在salesforce apex頁面url中設置Cookie,並在同一瀏覽器的其他域中獲取這些cookie。使用javacript但無法獲得。使用javascript設置和閱讀使用兩個不同域的cookie
其實我的Apex頁面,我加載的iframe和那個時候我設置該cookie,並獲得這些cookie在salesforce域外的另一個頁面。
任何機構都有任何想法如何設置和獲取Cookie使用不同的域。
我想使用javascript [document.cookie]在salesforce apex頁面url中設置Cookie,並在同一瀏覽器的其他域中獲取這些cookie。使用javacript但無法獲得。使用javascript設置和閱讀使用兩個不同域的cookie
其實我的Apex頁面,我加載的iframe和那個時候我設置該cookie,並獲得這些cookie在salesforce域外的另一個頁面。
任何機構都有任何想法如何設置和獲取Cookie使用不同的域。
出於安全原因,無法讀取其他域創建的Cookie。我也相信瀏覽器處理cookie的域方面的創建,所以我不相信有可能從另一個域創建一個cookie。
我不認爲你要問什麼是可能在不同的域(子域將工作)
這是行不通的,你想要的方式。您無法讀取其他域的Cookie。您可以考慮使用跨窗口消息傳遞 - 尤其是在使用iframe的情況下。
你能解釋一下關於i-frame的謠言嗎? –
網頁和嵌入式iframe可能通過簡單的消息傳遞系統進行通信。你可以在這裏找到一個描述,例如:https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage?redirectlocale=en-US&redirectslug=DOM%2Fwindow.postMessage 這樣你可以使用一個iframe作爲某種代理與域進行通信。 – Alex
原點之間溝通的另一種方式是CORS。只是谷歌它。你可以在這裏找到CORS和使用消息傳遞的iframe之間的比較:http://stackoverflow.com/questions/8186581/benefit-of-cors-over-cross-domain-messaging – Alex
出於安全原因,無法讀取其他域創建的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
在另一個領域,因爲你不能讀取cookies它帶來安全風險 –