[php] AjaxリクエストインターフェイスのCookieの問題
阿神
阿神 2017-05-16 12:03:02
0
2
379

シナリオ: たとえば、ユーザーログインインターフェース 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 を手動で送信する必要がありますか?そうでない場合、セッション データを取得するにはどうすればよいですか?

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

阿神
阿神

闭关修行中......

全員に返信(2)
黄舟

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

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

いいねを押す +0
巴扎黑

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

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

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート