4

サーバーにリクエストするChrome拡張機能の背景ページがあります。 Chromeのデバッグツールを使用すると、さまざまなSet-Cookieヘッダーが返されることがわかります。しかし、後続のリクエストにはこれらのCookieが含まれていないため、Chromeはそれらを捨ててしまいます。この結果、サーバーに対して行われた各要求が新しいセッションとしてカウントされます。私が持っている拡張機能内のXMLHttpRequestからのSet-Cookie応答ヘッダーをChromeが無視する

サーバー側には、以下のヘッダは設定:

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

私は最終的にこれを使い果たしました。そのトリックは、 "クッキー"パーミッションを拡張マニフェストに入れることです。クロムエクステンションのドキュメントでは、chrome.cookies APIを使用している場合に必要となることのみが記載されているため、それは明らかではありません。

サードパーティのCookieも有効にする必要があります。サードパーティのクッキーを有効にすることは、私が推薦したいことではないので、まったく別のソリューションが必要な場合があります。

関連する問題