4

我有一個Chrome擴展中的後臺頁面,它向服務器發出請求。通過使用Chrome的調試工具,我可以看到各種Set-Cookie標題被返回。但是,隨後的請求中不包含這些cookie - Chrome似乎將它們丟棄。這導致對服務器的每個請求都被視爲一個新的會話。Chrome瀏覽器忽略擴展中XMLHttpRequest的設置Cookie響應標頭

服務器端我有以下標題設置:

header("Access-Control-Allow-Origin: *"); 
header("Access-Control-Allow-Credentials: true"); 

客戶端我有XMLHttpRequest對象withCredentials = true集。

我也有擴展清單的權限部分內的服務器的地址。

我覺得我非常接近這裏的解決方案 - 服務器正在響應正確的標題,但我無法弄清楚爲什麼Chrome決定不存儲Cookie。

是否還有其他東西需要在標題,XMLHttpRequest對象或清單中設置?或者這是不可能的?

+0

後續請求是否也返回set-cookie頭? – Gerben

+0

是的,因爲總會有一個新的會話。我最終找到了一個解決方案,並在下面發佈了它,但這有點垃圾,因爲我必須啓用第三方Cookie。 – kanassa

回答

2

我終於完成了這一個。訣竅是將「cookie」權限放入擴展清單中。這並不明顯,因爲Chrome擴展文檔僅指出如果您使用chrome.cookies API,則需要它 - 我不是。

您還必須啓用第三方cookie。所以我可能需要一個完全不同的解決方案,因爲啓用第三方cookie不是我想要推薦的。