$http ne pas envoyer de cookie dans les Demandes
Nous travaillons sur un Service web RESTful avec AngularJS et des Servlets Java.
Lorsque l'utilisateur se connecte, notre backend envoie un "Set-Cookie" en-tête pour le frontend. Dans Angulaire, nous avons accès à l'en-tête via $cookies
(ngCookie - module) et la définir.
Maintenant que l'utilisateur est connecté, il peut par exemple supprimer certaines choses. Par conséquent, l'interface envoie une requête GET à l'arrière-plan. Parce que nous travaillons sur différents domaines, nous avons besoin de définir des CORS des en-Têtes et Angulaires fait une demande d'OPTIONS avant la requête GET:
Demande OPTIONS:
Requête GET
Nous faisons cela dans Angulaire via $module http, mais il ne peut pas envoyer le cookie contenant JSESSIONID
.
Comment puis-je activer Angulaire d'envoyer des cookies?
Vous devez vous connecter pour publier un commentaire.
Dans votre config, DI
$httpProvider
et puis définissez withCredentials vrai:Info sur angularjs withCredentials: http://docs.angularjs.org/api/ng.$http
Qui relie le mozilla article: https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS?redirectlocale=en-US&redirectslug=HTTP_access_control#section_5
$http.get('something', { withCredentials: true})
le navigateur n'envoie pas les cookies. Cependant, en utilisant le code ci-dessus pour ajouterwithCredentials
par défaut a fait le tour. Je ne sais pas pourquoi, mais j'espère que ça aide si quelqu'un d'autre s'exécute sur ce problèmeUne autre chose à garder à l'esprit: Vous devez ont 3rd party cookies activés. Si vous l'avez désactivé totalement dans Chrome, cliquez sur le "i"-Symbole à gauche du nom de domaine, puis les cookies, puis "bloqué" et débloquer le domaine cible.