簡體   English   中英

請求JS時未發送cookie

[英]cookie not being sent when requesting JS

最初在網站站長上發布的問題,建議將其移至此處。

我托管了一個Web服務,並為我的成員提供了一個Javascript小書簽,該小書簽從服務器上加載了JS代碼。 但是,必須先登錄客戶端才能接收JS腳本。 這幾乎適用於所有人。 for other people have the following problem: when they request the script via the javascript bookmarklet from my server, their cookie from my server does not get included with the request, and as such they are always "not authenticated". 然而,設置一些用戶(即瀏覽器/ OS) 為其他人有以下問題:當他們通過從我的服務器的JavaScript書簽請求腳本,從我的服務器的Cookie不會被包含在請求,因此它們始終是“未認證的”。

我以以下方式發出請求:

var myScript = eltCreate('script');
myScript.setAttribute('src','http://myserver.com/script');
document.body.appendChild(myScript);

出於困惑,我更改了腳本頁面,僅在http://myserver.example.com上輸出“我的cookie具有[x]個元素”,其中[x]是count($_COOKIE) 如果此用戶子集使用在小書簽中編碼的上述方法來請求腳本,則消息顯示為“我的cookie具有0個元素”。 當他們直接在瀏覽器中訪問URL時,消息顯示為“我的cookie具有7個元素”。

到底是怎么回事? 更重要的是,我該如何解決?

我很確定這是一個隱私設置問題。 受影響的瀏覽器可能增加了其隱私設置,從而拒絕了第三方腳本設置Cookie。

當將指向域B的IFRAME放置在域A托管的站點上時,我遇到了類似的問題。某些瀏覽器拒絕我的IFRAME為它自己的域設置cookie,因為它觸發了隱私問題。

您可能希望將哈希存儲在腳本的src屬性中,並以這種方式對用戶進行身份驗證。

編輯:這是我在說什么: 在Safari中設置跨域Cookie

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM