7

サーバーにリクエストを送信するChrome拡張機能のバックグラウンドページがあります。Set-CookieChromeのデバッグツールを使用すると、さまざまなヘッダーが返されることがわかります。ただし、後続のリクエストにはこれらのCookieは含まれていません。ChromeはCookieを破棄しているようです。これにより、サーバーに対して行われた各要求が新しいセッションとしてカウントされます。

サーバー側次のヘッダーが設定されています。

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

クライアント側私はwithCredentials = trueXMLHttpRequestオブジェクトに設定しました。

また、拡張機能マニフェストのアクセス許可セクションにサーバーのアドレスがあります。

私はここでの解決策に非常に近いと感じています-サーバーは正しいヘッダーで応答していますが、ChromeがCookieを保存しないことを決定した理由を完全に理解することはできません。

ヘッダー、XMLHttpRequestオブジェクト、またはマニフェストに設定する必要があるものは他にありますか?それともこれは不可能ですか?

4

1 に答える 1

3

I finally worked this one out. The trick is to put the "cookies" permission into the extension manifest. That's not obvious because the Chrome Extension documentation states only that it's required if you're using the chrome.cookies API - I'm not.

You also have to enable third party cookies. So I may need a totally different solution as enabling third party cookies is not something I want to be recommending.

于 2011-07-03T00:07:05.897 に答える