xmlhttprequest et set-cookie & cookie
je pense que j'ai mal compris la gestion des cookies avec xmlhttprequest. J'ai un serveur qui répond au XMLHttpRequest
fait en javascript, mon serveur retourne Allow-Control-Access-Origin
, Access-Control-Allow-Headers
, Access-Control-Expose-Headers
et Access-Control-Allow-Credentials
headers avec la valeur correcte.
je fais un Digest authentifier dans un serveur avec javascript, aucun problème en cela, je reçois ok l'en-tête WWW-Authenticate
du serveur, je traite et envoie au serveur l'en-tête D'autorisation avec tous les digest-réponse et tout est ok.
Le problème est que lorsque le digest-challenge est réussi, mon serveur renvoie un en-tête Set-Cookie, je dois le récupérer et l'ajouter au reste de ma requête xhr.
Le navigateur (utilisant Chromium et Chrome) ne me laisse pas accéder à l'en-tête faisant:
xhr.getResponseHeader("Set-Cookie");
Ok, dans le XMLHttpRequest Level 2 il est dit: "renvoie tous les en-têtes de la réponse, à l'exception de ceux dont le nom de champ est défini-Cookie ou Set-Cookie2" Ok, donc je ne peux pas le prendre, mais quels sont les moyens? Utilisation de L'Api de Chrome pour les cookies (pour le moment, je ne sais pas noter à ce sujet), mais je veux faire pour une manière standard que possible. Avec le:
xhr.withCredentials = true;
signifie que le navigateur reçoit automatiquement le cookie de configuration et envoie les en-têtes de cookie??
1 réponses
de CORS spec http://www.w3.org/TR/cors/#make-a-request-steps :
chaque fois que les étapes make a request sont appliquées, récupérez L'URL de la requête de origin source avec le drapeau de redirection manuelle, et le drapeau de block cookies si le drapeau omit credentials est activé. Utiliser la méthode de demande de méthode, le corps de la demande d'entité corps de l'entité, y compris les en-têtes de la demande de l'auteur, et inclure les justificatifs d'identité de l'utilisateur si les justificatifs d'identité omettre le drapeau n'est pas définie. Exclure l'en-tête Referer si l'origine source est un identifiant globalement unique.
comme vous le dites correctement - les cookies sont ajoutés par navigateur si vous utilisez withCredentials
.