创建用户 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。
我正在从我的前端到另一个域的后端执行 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。