1. ホーム
  2. jquery

[解決済み] jQueryの.ajax()メソッドが私のセッションクッキーを送信しないのはなぜですか?

2022-03-15 02:58:45

質問

でログインした後 $.ajax() を送信しようとしています。 $.ajax() しかし、FireBug を使用して送信されたヘッダーをチェックすると、リクエストにセッション クッキーが含まれていません。

私は何を間違えているのでしょうか?

どうすればいいですか?

AJAX呼び出しは、呼び出し先のURLが呼び出し元のスクリプトと同じドメインにある場合にのみ、Cookieを送信します。

これはクロスドメインの問題である可能性があります。

からurlを呼び出そうとしたのかもしれません。 www.domain-a.com 呼び出し側のスクリプトが www.domain-b.com (言い換えれば この場合、ブラウザはあなたのプライバシーを保護するためにクッキーを送信しません)。

この場合、あなたの選択肢は

  • ドメインbに常駐し、リクエストをドメインaに転送する小さなプロキシを書きます。ブラウザは、プロキシが呼び出し元のスクリプトと同じサーバー上にあるため、プロキシの呼び出しを許可する。
    このプロキシは、クッキーの名前と値のパラメータを受け入れるように自分で設定でき、それをドメインaに送ることができます。しかし、これが動作するためには、 domain-a上のサーバが認証のために必要とするクッキーの名前と値を知っている必要があります。
  • JSONオブジェクトを取得する場合、JSONオブジェクトを取得するために JSONP jQueryはこれをサポートしています。しかし、有効なJSONPレスポンスを返すように、ドメインaのサービスを変更する必要があります。

少しでもお役に立てたならうれしいです。