Javascript 未使用XMLHttpRequest在CORS Ajax请求中设置Cookie

Javascript 未使用XMLHttpRequest在CORS Ajax请求中设置Cookie,javascript,ajax,cookies,Javascript,Ajax,Cookies,我已经为此挣扎了一段时间。我们通过Ajax调用我们的内部服务,Ajax将在请求完成后设置cookie。据我所知,这可以通过with credentials参数来实现。我还检查了来自Mozilla的示例 这让我想到了这一点 看起来它在工作,我只需要正确设置CORS。然而,当我复制代码并尝试调用我的服务时,我没有看到任何cookie被设置 这是密码 var invocation = new XMLHttpRequest(); var url = 'MY SERVICE URL';

我已经为此挣扎了一段时间。我们通过Ajax调用我们的内部服务,Ajax将在请求完成后设置cookie。据我所知,这可以通过
with credentials
参数来实现。我还检查了来自Mozilla的示例

这让我想到了这一点

看起来它在工作,我只需要正确设置CORS。然而,当我复制代码并尝试调用我的服务时,我没有看到任何cookie被设置

这是密码

var invocation = new XMLHttpRequest();
    var url = 'MY SERVICE URL';
    var invocationHistoryText;


    function callOtherDomain(){
        if(invocation)
        {
            invocation.open('GET', url, true);
            invocation.withCredentials = "true";
            invocation.onreadystatechange = handler;
            invocation.send(); 
        }
    }
    function handler(evtXHR)
    {
        if (invocation.readyState == 4)
        {
                if (invocation.status == 200)
                {
                    var response = invocation.responseText;
                    console.log(response);

                }
                else
                    alert("Invocation Errors Occured" + invocation.readyState);
        }
        else
        {
            console.log("currently the application is at" + invocation.readyState);
        }
    }
这就是我得到的回应

access-control-allow-credentials:true
access-control-allow-headers:Authorization, Content-Type, If-None-Match
access-control-allow-methods:GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS
access-control-allow-origin:http://localhost:8888
access-control-expose-headers:WWW-Authenticate, Server-Authorization
access-control-max-age:86400
cache-control:max-age=600
Connection:keep-alive
content-encoding:gzip
Content-Length:56
Content-Type:text/plain; charset=utf-8
Date:Thu, 07 Jul 2016 14:25:19 GMT
Expires:Thu, 07 Jul 2016 14:35:19 GMT
这是它发出的请求头

请求头

Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,th;q=0.6,zh-CN;q=0.4,zh-TW;q=0.2
Cache-Control:no-cache
Connection:keep-alive
Cookie:name=Fe26.2**6cff63f4eb1d5d63c9ef3beb4618b19b4638f5a805030ac9e3e06f0f3561e6f1*gX0LowRnJ-Bc0YS5WAMFqQ*66rp6okC9kDZXmZ4rl8BVVlGOI_KcGlydCG-XnFmgUX4_e6CMeg6JCpjx12xEF5c**a454d2b7be5b7f32cc463aaf151f67fbeefedf4dbe0d389ba2fb19a1b6745ba3*XBh9bkxi6HLcB0zwm500nYjsiiUw7TRsCZB_p2xgln4
DNT:1
Host:MY INTERNAL SERVICE
Origin:http://localhost:8888
Pragma:no-cache
Referer:http://localhost:8888/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36

所以,我不确定这里出了什么问题

请求中有一个可见的cookie。什么使你认为它没有被设置?我用Chrome开发者工具检查过,但我没有看到那个cookie。当我尝试这个示例时,我在Chrome Developer tool中看到了cookie。同样从这个示例中,我看到响应头中有一个标题集cookie,但是当我更改到我的内部服务url时,我在响应中没有看到任何设置cookie。因此,我假设没有设置cookie。请求中有一个cookie可见。什么使你认为它没有被设置?我用Chrome开发者工具检查过,但我没有看到那个cookie。当我尝试这个示例时,我在Chrome Developer tool中看到了cookie。同样从这个示例中,我看到响应头中有一个标题集cookie,但是当我更改到我的内部服务url时,我在响应中没有看到任何设置cookie。因此,我假设cookie没有设置。