J'ai:
1) une application côté client qui a son propre domaine: http://client.com
2) une application latérale de serveur qui possède un domaine distinct: http://server.com
À présent,
le scénario est:
1) Ouverture http://client.com/home Dans le navigateur, qui affiche une page HTML.
2) http://client.com/home redirige vers http://server.com/login
3) http://server.com/login stocke un cookie 'auth' et envoie une instruction redirection à http://client.com/welcome
Réponse:
Access-Control-Autory-Origin: *
Connexion: Garder-vivant
Longueur de contenu: 104
Type de contenu: Texte/HTML; Charset = utf-8
Date: Wed, 16 janv. 2019 10:47:11 GMT
Lieu: http://client.com/welcome
Set-Cookie: Auth = 1479DA80-197C-11E9-BA74-59606594E2FB; Chemin = /
Varier: Accepter
X-Powered-by: express
4) Le navigateur reçoit la réponse, qui contient le cookie 'Auth' '
5) Le navigateur se redirige http://client.com/welcome
6) 'Auth' Cookie est envoyé à http://client.com/welcome
Demande:
Cookie: auth = 1479DA80-197C-11E9-BA74-59606594E2FB
7) http://client.com/welcome retourne html mais ne renvoie pas le cookie 'auth' '
8) http://client.com/welcome fait un AJAX Demande à http://server.com/data (CORS activé), mais le cookie 'auth' n'est pas envoyé
9) http://server.com/data ne reconnaît pas l'utilisateur car il n'y a pas de cookie
Le côté client est un angular hébergé par node.js
Edit:
Comme suggéré, j'ai ajouté à la réponse de serveur.com:
Access-Control-Autoriser-lesdimensions: True
mais rien n'a été changé.
Code secondaire du client pertinent:
const headerOptions = new HttpHeaders({
'Content-Type': 'application/json', 'withCredentials': 'true', 'Access-Control-Allow-Origin': 'true', 'Access-Control-Allow-Credentials': 'true'
});
this.httpClient.get<any>(this.baseUrl + "data", { headers: headerOptions }).subscribe((res) => {
À partir de la spécification d'origine de contrôle-control-autoroute: pour les demandes sans identifiants, la valeur littérale "" peut être spécifié, comme une carte générique; *
Essayez d'ajouter un domaine spécifique au champ Access-Control-Allow-Origin
.
Je pense que vous devriez utiliser l'application de proxy dans angular angular. Pour plus d'informations, cochez ce lien: https://github.com/angular/angular-cli/blob/master/docs/documentation/stories/proxy.md