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??

14
demandé sur rdonatoiop 2012-06-11 13:01:59

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 .

16
répondu Artem Oboturov 2012-06-12 15:01:39