Maison interface Web js tutoriel Comment attacher des cookies aux requêtes inter-domaines ajax

Comment attacher des cookies aux requêtes inter-domaines ajax

Sep 13, 2018 pm 05:26 PM
ajax cookie

Cette fois, je vais vous montrer comment résoudre le problème de perte de cookies lors de l'accès inter-domaines Ajax. Quelles sont les précautions pour résoudre le problème de perte de cookies lors de l'accès inter-domaines Ajax ? jetez un oeil.

Dans le développement réel du projet, nous rencontrerons toujours des projets où le front-end et le back-end sont séparés. Dans de tels projets, le cross-domain est le premier problème à résoudre. Il est également très important, cependant, que la méthode de combinaison de session et de cookie soit généralement utilisée pour enregistrer les informations utilisateur en arrière-plan. Cependant, dans la situation réelle du front-end, l'ajax généré à travers les domaines ne peut pas transporter les informations sur les cookies, ce qui conduit. à la perte des informations de session et d'utilisateur du cookie. Le mode de stockage est affecté, comment résoudre un tel problème en consultant les informations, je prendrai comme exemple la requête ajax dans $http d'angularJS.

Tout d'abord, en arrière-plan, j'utilise le filtre de servlet pour intercepter toutes les requêtes et définir l'en-tête de la requête :


	// 解决跨越问题
Copier après la connexion
	response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "*");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,SessionToken");
Copier après la connexion
	// 允许跨域请求中携带cookie
        response.setHeader("Access-Control-Allow-Credentials", "true");
Copier après la connexion

La partie supérieure du code est le code pour résoudre le problème inter-domaines, et la deuxième partie de réponse.setHeader("Access-Control-Allow-Credentials", "true"); porté dans le backend.


Code frontal :


$scope.login = function () {
                $http({
                    // 设置请求可以携带cookie
                    withCredentials:true,
                    method: 'post',
                    params: $scope.user,
                    url: 'http://localhost:8080/user/login'
                }).then(function (res) {
                    alert(res.data.msg);
                }, function (res) {
                    if (res.data.msg) {
                        alert(res.data.msg);
                    } else {
                        alert('网络或设置错误');
                    }
                })
            }
Copier après la connexion

À partir du code ci-dessus, il n'est pas difficile de savoir que dans les requêtes inter-domaines Le point le plus important sur le front-end est withCredentials:true. Cette instruction combinée avec les paramètres "Access-Control-Allow-Credentials" et "true" en arrière-plan peut transporter des cookies dans les requêtes ajax inter-domaines.


Cependant, j'ai trouvé quelques problèmes lorsque je l'ai testé Lorsque la demande a été envoyée, le navigateur a signalé l'erreur suivante

Réponse au contrôle en amont. La demande ne réussit pas le contrôle de contrôle d'accès : un caractère générique "*" ne peut pas être utilisé dans l'en-tête "Access-Control-Allow-Origin" lorsque l'indicateur d'informations d'identification est vrai. L'origine "null" n'est donc pas autorisée à accéder. Le mode d'un XMLHttpRequest est contrôlé par l'attribut withCredentials.

Après avoir consulté les informations pertinentes, j'ai découvert que la raison est de résoudre le code inter-domaines réponse.setHeader("Access-Control- Allow-Origin", "*"); Cette partie est en conflit avec la partie de configuration des cookies inter-domaines. Après avoir vérifié les informations pertinentes, j'ai constaté que lors de la configuration des requêtes ajax inter-domaines pour transporter des cookies, Access-Control- Allow-Origin doit être spécifié. Cela signifie que sa valeur ne peut pas être *. Cependant, lorsque vous pensez que l'adresse IP du front-end change lorsque le front-end et le back-end sont séparés, vous avez l'impression de revenir au point d'origine. . Ne ​​pouvez-vous pas utiliser cette méthode pour résoudre le problème du cross-domain ajax et du transport de cookies ?

Ensuite, lors des recherches sur les requêtes ajax que j'ai effectuées, j'ai découvert que dans angulaireJS, la valeur de l'en-tête de requête Origin dans chaque requête est "nulle". Qu'est-ce que cela signifie ? J'ai donc changé l'arrière-plan "Access-Control-Allow-Origin", "*" en "Access-Control-Allow-Origin", "null", et la chose suivante est devenue merveilleuse, toutes les requêtes ajax ont réussi. Le cookie qui l'accompagne a réussi. atteint son objectif.


      response.setHeader("Access-Control-Allow-Origin", "null");
Copier après la connexion

Recommandations associées :

JavaScript (Ajax) et politique de même origine des cookies

La requête inter-domaines Ajax n'autorise pas les cookies

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre l'erreur 403 rencontrée par la requête jQuery AJAX Comment résoudre l'erreur 403 rencontrée par la requête jQuery AJAX Feb 20, 2024 am 10:07 AM

Titre : Méthodes et exemples de code pour résoudre les erreurs 403 dans les requêtes jQuery AJAX L'erreur 403 fait référence à une demande selon laquelle le serveur interdit l'accès à une ressource. Cette erreur se produit généralement parce que la demande manque d'autorisations ou est rejetée par le serveur. Lorsque vous effectuez des requêtes jQueryAJAX, vous rencontrez parfois cette situation. Cet article explique comment résoudre ce problème et fournit des exemples de code. Solution : Vérifiez les autorisations : assurez-vous d'abord que l'adresse URL demandée est correcte et vérifiez que vous disposez des autorisations suffisantes pour accéder à la ressource.

Comment résoudre l'erreur 403 de la requête jQuery AJAX Comment résoudre l'erreur 403 de la requête jQuery AJAX Feb 19, 2024 pm 05:55 PM

jQuery est une bibliothèque JavaScript populaire utilisée pour simplifier le développement côté client. AJAX est une technologie qui envoie des requêtes asynchrones et interagit avec le serveur sans recharger la page Web entière. Cependant, lorsque vous utilisez jQuery pour effectuer des requêtes AJAX, vous rencontrez parfois des erreurs 403. Les erreurs 403 sont généralement des erreurs d'accès refusé par le serveur, probablement en raison de problèmes de politique de sécurité ou d'autorisation. Dans cet article, nous verrons comment résoudre la requête jQueryAJAX rencontrant une erreur 403.

PHP et Ajax : créer un moteur de suggestions de saisie semi-automatique PHP et Ajax : créer un moteur de suggestions de saisie semi-automatique Jun 02, 2024 pm 08:39 PM

Créez un moteur de suggestions de saisie semi-automatique en utilisant PHP et Ajax : Script côté serveur : gère les requêtes Ajax et renvoie des suggestions (autocomplete.php). Script client : envoyer une requête Ajax et afficher des suggestions (autocomplete.js). Cas pratique : Incluez le script dans la page HTML et spécifiez l'identifiant de l'élément d'entrée de recherche.

Explication détaillée de l'endroit où les cookies du navigateur sont stockés Explication détaillée de l'endroit où les cookies du navigateur sont stockés Jan 19, 2024 am 09:15 AM

Avec la popularité d’Internet, l’utilisation de navigateurs pour surfer sur Internet est devenue un mode de vie. Dans l'utilisation quotidienne des navigateurs, nous rencontrons souvent des situations où nous devons saisir les mots de passe de comptes, comme les achats en ligne, les réseaux sociaux, les e-mails, etc. Ces informations doivent être enregistrées par le navigateur afin qu'elles n'aient pas besoin d'être saisies à nouveau lors de votre prochaine visite. C'est alors que les cookies sont utiles. Que sont les cookies ? Le cookie fait référence à un petit fichier de données envoyé par le serveur au navigateur de l'utilisateur et stocké localement. Il contient le comportement des utilisateurs de certains sites Web.

Comment résoudre le problème de l'erreur 403 jQuery AJAX ? Comment résoudre le problème de l'erreur 403 jQuery AJAX ? Feb 23, 2024 pm 04:27 PM

Comment résoudre le problème de l’erreur 403 jQueryAJAX ? Lors du développement d'applications Web, jQuery est souvent utilisé pour envoyer des requêtes asynchrones. Cependant, vous pouvez parfois rencontrer le code d'erreur 403 lors de l'utilisation de jQueryAJAX, indiquant que l'accès est interdit par le serveur. Cela est généralement dû aux paramètres de sécurité côté serveur, mais il existe des moyens de résoudre le problème. Cet article explique comment résoudre le problème de l'erreur 403 jQueryAJAX et fournit des exemples de code spécifiques. 1. faire

Comment obtenir des variables de la méthode PHP en utilisant Ajax ? Comment obtenir des variables de la méthode PHP en utilisant Ajax ? Mar 09, 2024 pm 05:36 PM

L'utilisation d'Ajax pour obtenir des variables à partir de méthodes PHP est un scénario courant dans le développement Web. Grâce à Ajax, la page peut être obtenue dynamiquement sans actualiser les données. Dans cet article, nous présenterons comment utiliser Ajax pour obtenir des variables à partir de méthodes PHP et fournirons des exemples de code spécifiques. Tout d’abord, nous devons écrire un fichier PHP pour gérer la requête Ajax et renvoyer les variables requises. Voici un exemple de code pour un simple fichier PHP getData.php :

Foire aux questions et solutions concernant les paramètres des cookies Foire aux questions et solutions concernant les paramètres des cookies Jan 19, 2024 am 09:08 AM

Problèmes courants et solutions pour les paramètres des cookies, des exemples de code spécifiques sont nécessaires Avec le développement d'Internet, les cookies, en tant que l'une des technologies conventionnelles les plus courantes, ont été largement utilisés dans les sites Web et les applications. En termes simples, un cookie est un fichier de données stocké sur l'ordinateur de l'utilisateur qui peut être utilisé pour stocker les informations de l'utilisateur sur le site Web, notamment le nom de connexion, le contenu du panier, les préférences du site Web, etc. Les cookies sont un outil essentiel pour les développeurs, mais en même temps, des paramètres de cookies sont souvent rencontrés.

Comment trouver des cookies dans votre navigateur Comment trouver des cookies dans votre navigateur Jan 19, 2024 am 09:46 AM

Dans notre utilisation quotidienne des ordinateurs et d'Internet, nous sommes souvent exposés à des cookies. Un cookie est un petit fichier texte qui enregistre nos visites sur le site Web, nos préférences et d'autres informations. Ces informations peuvent être utilisées par le site Web pour mieux nous servir. Mais parfois, nous avons besoin de trouver des informations sur les cookies pour trouver le contenu souhaité. Alors comment trouver les cookies dans le navigateur ? Tout d’abord, nous devons comprendre où se trouve le cookie. dans le navigateur

See all articles