xmlhttprequest和set-cookie&cookie

Kal*_*ico 14 javascript cookies xmlhttprequest setcookie cors

我想我误解了用xmlhttprequest管理cookies.我有一个响应的服务器XMLHttpRequest在JavaScript做,我的服务器返回Allow-Control-Access-Origin,Access-Control-Allow-Headers,Access-Control-Expose-HeadersAccess-Control-Allow-Credentials用正确的值标题.

我正在使用javascript在服务器上进行摘要身份验证,没有问题,我收到WWW-Authenticate来自服务器的标题,我处理并向服务器发送带有所有摘要响应的授权标头,一切正常.问题是,当摘要挑战成功时,我的服务器返回一个Set-Cookie标头,我必须得到它并添加到我的所有xhr请求的其余部分.浏览器(使用Chromium和Chrome)不允许我访问标题:

xhr.getResponseHeader("Set-Cookie");
Run Code Online (Sandbox Code Playgroud)

好吧,在XMLHTTPREQUEST Level 2中它说:"返回响应中的所有头文件,除了那些字段名称为Set-Cookie或Set-Cookie2的头文件"好的,所以我不能接受它,但有什么办法?使用Chrome Api进行Cookie(目前我还没有注意到它的注意事项),但我希望以标准的方式做到可行.随着:

xhr.withCredentials = true;
Run Code Online (Sandbox Code Playgroud)

意味着浏览器自动获取set-cookie并发送cookie头?

Art*_*rov 16

来自CORS规范http://www.w3.org/TR/cors/#make-a-request-steps:

每当应用make一个请求步骤时,从设置了手动重定向标志的源source origin获取请求URL,如果设置了omit credentials标志,则设置block cookies标志.使用方法请求方法,实体主体请求实体主体,包括作者请求标头,如果未设置省略凭证标志,则包括用户凭证.如果源origin是全局唯一标识符,则排除Referer标头.

正如您所说 - 如果您使用,则会通过浏览器添加Cookie withCredentials.