2012-06-18 17 views
6

Google Chrome拡張機能から別のドメインにXHRリクエストを送信しようとしています。これはうまくいくはずですが、そのドメインCookieをリクエストとともに送信する必要があります。これを行う方法は?Chrome拡張機能からクッキーを使用してXHRリクエストを送信する

+0

['webRequest'](http://code.google.com/chrome/extensions/webRequest.html#event-onBeforeSendHeaders)APIを使用して、ヘッダー(Cookieを含む)を変更することができます。 UAのなりすまし+ヘッダー編集の例が見つかりました[ここ](http://stackoverflow.com/a/10339902/938089?associate-a-custom-user-agent-to-a-specific-google-chrome-page -タブ)。 –

+0

なぜChromeはユーザーのCookieを送信しないという印象を受けていますか?私はちょうどそれをテストし、それはありません。あなたのパーミッションにサイトはありますか? –

+0

Huh。私の悪い。それは間違いなくリクエストでクッキーを送信します。 – nathancahill

答えて

5

manifest.json権限が正しく設定されていることを確認してください。

クロムエクステンションのmanifest.jsonにクロスサイトドメインリクエストの権限を正しく設定する必要があります。適切に実行されると、既にターゲットドメインに設定されているクッキーが、そのドメインに対して行っているリクエストとともに送信されます。 manifest.json documentation

localhost:port_numberで遊ぶときは特に注意が必要です。 manifest.jsonでそのドメインを完全に指定する必要があります。私は、localhostドメインが完全に指定されていないと、厄介な振る舞いで終わった。

これは、あなたが(それが理にかなっている場合)あなたの拡張機能のmanifest.jsonであなたのローカルホストのドメインを指定する方法である:

... 
"permissions": [ 
    "http://localhost:3000/" 
    ], 
... 

あなたがターゲットにドメインに送信するクッキーがまだ設定されていない場合は、 chrome.cookies.setメソッドを使用して、domain属性を使用してsetメソッドに渡すオブジェクトを使用して、必要なドメイン名を指定することができます。ドキュメントは chrome.cookies.setです。

+1

なぜlocalhostはクロスサイトのアクセス許可を与えますか? – itchyspacesuit

関連する問題