検索

ホームページ  >  に質問  >  本文

[php] AjaxリクエストインターフェイスのCookieの問題

シナリオ: たとえば、ユーザーログインインターフェース a とユーザー情報取得インターフェース b の 2 つのインターフェースがあります。ブラウザから呼び出す場合はまったく問題ありませんが、jq の ajax を使用してこれら 2 つのインターフェイスを呼び出す必要があると、問題が発生します。

  1. まずブラウザについて話しましょう。
    ブラウザにログイン インターフェイスのアドレスを入力し、パラメータを渡すと、ログインが成功しました。サーバー(php)は私のユーザーID、ユーザー名などをsessionに保存します。次に、ユーザー情報インターフェイスを要求します b. サーバーはセッションからユーザー情報を直接検索し、ブラウザに戻ります。

  2. ajax について話しましょう。
    ajax を使用して js でログイン インターフェイスを呼び出し、成功情報を返し、ログインに成功しました。ユーザー情報もセッションに保存されます。しかし、ajax を使用してインターフェイス b を呼び出してユーザー情報を取得したときに、問題が発生し、session が見つかりませんというメッセージが表示されました。

コンソールで確認しました。ブラウザが正常にログインすると、次回同じドメイン名でインターフェースをリクエストすると、set-cookieの情報が自動的に返されます。リクエストヘッダーで送信され、サーバー内のcookieのデータを取得します。 session

ajax リクエストの場合、ログインに成功すると、応答ヘッダーに

の情報も返されます。ただし、次回同じドメイン名でインターフェイスをリクエストした場合、set-cookie は自動的に送信されません。サーバーが見つかりません。cookie データ。 session

そこで質問は次のとおりです:

セッション データを取得したい場合、ajax リクエストを行うときに Cookie を手動で送信する必要がありますか?そうでない場合、セッション データを取得するにはどうすればよいですか?

神に答えを求めてください!

阿神阿神2757日前368

全員に返信(2)返信します

  • 黄舟

    黄舟2017-05-16 12:05:02

    ajax 请求添加参数 xhrFields: { withCredentials: true },

    php設定header('Access-Control-Allow-Credentials:true');

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-16 12:05:02

    セッションは Cookie に依存しています。サーバー上の Cookie はどこに保存されていますか?

    クライアントのブラウザに Cookie を渡しても、それはサーバー内の Cookie と一致しますか?

    そのため、サーバー上でセッションを行うことはできず、トークンのみを使用することができ、バックグラウンドで情報を保存するには Redis などを使用する必要があります。

    返事
    0
  • キャンセル返事