[php] Problème de cookie avec l'interface de requête ajax
阿神
阿神 2017-05-16 12:03:02
0
2
377

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 !

阿神
阿神

闭关修行中......

répondre à tous(2)
黄舟

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');🎜
巴扎黑

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal