0

Chrome拡張機能をEdgeに変換しています。ただし、単純なページや拡張機能からの ajax リクエストを処理するときに、エッジが異なる Cookie を送信することがわかりました。

例:

  1. アドレス バーからhttps://httpbin.org/cookies/set?bar=fooにアクセスします。「foo」の値を持つ「bar」と呼ばれる新しい Cookie が追加されました。

  2. Edge 拡張機能の任意のバックグラウンド ページで、fetch を使用して ajax リクエストを作成します

    fetch('https://httpbin.org/cookies',{credentials: 'include'});
    

デバッグ コンソールは、エッジが「バー」クッキーを送信しないことを示しています。

  1. バックグラウンドページで次の ajax リクエストを再度作成します

    fetch('https://httpbin.org/cookies/set?bar2=foo2',{credentials: 'include'});
    

    これで「bar2」Cookie が設定されましたが、「bar」Cookie はまだありません。

  2. アドレス バーから再度https://httpbin.org/cookiesにアクセスします。「bar2」クッキーはありません。

私は何か間違ったことをしていますか、それともバグまたはエッジの機能ですか?

4

1 に答える 1

0

これは、Edge が拡張機能とページ コンテキストの Cookie ストアを分割するために発生します。機能とバグの両方として聞いたことがあります。それを回避する必要がある場合は、次のことができます。

  • コンテキスト スクリプトで ajax リクエストを作成し、結果を background.html にメッセージで返します。
  • 新しい Edge (Edge 39.14936 でテスト済み) を使用して Insiders Preview をインストールすると、Cookie が正しく追加されます。
  • Cookie の値だけが必要な場合は、browser.cookie.get API 呼び出しを実行できます。HttpOnly Cookie では機能しません。
于 2016-11-25T06:20:42.330 に答える