创建用户 session 并使用 jQuery Ajax POST 设置 cookie

Create user session and set cookie with jQuery Ajax POST

我正在从我的前端到另一个域的后端执行 post,以创建 session 和 AJAX。

        //create a user session (asynchronously)
        $.ajax({
            method: "POST",
            url: api_url + "/sessions",
            dataType: 'text'
        })
        .done(function(sessionid) {
            console.log('Sessionid: ', sessionid);
            alert("Session created: " + sessionid);
        });
        return;

服务器在响应中用 cookie 响应 headers:

Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept

Access-Control-Allow-Origin:*

Allow: POST

Cache-Control:no-cache, must-revalidate

Connection:keep-alive

Content-Type:text/plain

Date:Tue, 23 Jun 2015 08:49:11 GMT

Expires:Sat, 26 Jul 1997 05:00:00 GMT

set-cookie:myCookie=s%3A6eb8444b-48dd-4084-91aa-3cf14c029b30.c0vbfPAvk6IkAlUE3nGXLEP3p09FDZejokgLyl5KifA; Path=/api; Expires=Sat, 05 Sep 2015 23:12:35 GMT

当我检查浏览器的资源选项卡时,我发现没有设置此 cookie。 如何设置此 cookie?

更新:

我将此添加到 jQuery AJAX 请求中:

xhrFields: {
  withCredentials: true
}

我现在可以看到请求中包含一个 Cookie header,并且只有一个 session 存储在服务器上。所以它按预期工作。

但是,我仍然没有在资源选项卡中看到 cookie。

呃。 cookie 是为另一个域上的 /api 设置的。因此,它不会被设置为我发布的页面的 cookie。