recherche

Maison  >  Questions et réponses  >  le corps du texte

[php] Problème de cookie avec l'interface de requête ajax

Scénario : par exemple, il existe deux interfaces, l'interface de connexion utilisateur a et l'interface d'acquisition d'informations utilisateur b. Il n'y a aucun problème lors de l'appel depuis le navigateur. Maintenant, lorsque nous devons utiliser ajax de jq pour appeler ces deux interfaces, quelque chose ne va pas.

  1. Parlons d’abord du navigateur.
    J'ai entré dans l'interface de connexion une adresse dans le navigateur, transmis les paramètres et la connexion a réussi. Le serveur (php) stocke mon identifiant, mon nom d'utilisateur, etc. dans session. Ensuite, demandez l'interface d'informations utilisateur. b. Le serveur trouve directement les informations utilisateur de la session et renvoie au navigateur.

  2. Parlons d’ajax.
    J'ai utilisé ajax pour appeler l'interface de connexion en js, j'ai renvoyé des informations de réussite et la connexion a réussi. Les informations utilisateur sont également stockées dans la session. Mais lorsque j'ai utilisé ajax pour appeler l'interface b afin d'obtenir des informations sur l'utilisateur, quelque chose s'est mal passé, invitant session introuvable.

Je l'ai vérifié dans la console. Une fois la connexion réussie du navigateur, les informations de set-cookie seront renvoyées dans l'en-tête de réponse. La prochaine fois que vous demanderez l'interface sous le même nom de domaine, cookie le sera automatiquement. envoyé dans l'en-tête de la requête Pour obtenir les données de session dans le serveur.

Dans le cas d'une requête ajax, une connexion réussie renverra également des informations set-cookie dans l'en-tête de réponse. Cependant, la prochaine fois que vous demanderez une interface sous le même nom de domaine, cookie ne sera pas automatiquement envoyée, donc. le serveur est introuvable session données.

Alors la question est :
Si je souhaite obtenir les données de session, dois-je envoyer manuellement le cookie lors d'une requête ajax ? Sinon, comment récupérer les données de la session ?

S'il vous plaît, demandez des réponses à Dieu !

阿神阿神2757 Il y a quelques jours367

répondre à tous(2)je répondrai

  • 黄舟

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

    ajax Demande d'ajout de paramètres xhrFields : { withCredentials : true },ajax 请求添加参数 xhrFields: { withCredentials: true },

    php 设置header('Access-Control-Allow-Credentials:true');

    php set header('Access-Control-Allow-Credentials:true');🎜

    répondre
    0
  • 巴扎黑

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

    La session repose sur des cookies. Où sont stockés les cookies sur votre serveur ?

    Même si vous transmettez le cookie dans le navigateur de votre client, est-il cohérent avec le cookie du serveur ?

    La session n'est donc pas possible sur le serveur. Vous ne pouvez utiliser que des jetons et vous devez utiliser Redis ou quelque chose pour stocker des informations en arrière-plan.

    répondre
    0
  • Annulerrépondre