【发布时间】:2019-12-29 07:40:24
【问题描述】:
我正在从我的前端向另一个域的后端发帖,以使用 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 进行响应:
Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, 接受
访问控制允许来源:*
允许:POST
Cache-Control:no-cache, must-revalidate
连接:保持活动状态
内容类型:文本/纯文本
日期:格林威治标准时间 2015 年 6 月 23 日星期二 08:49:11
到期时间:1997 年 7 月 26 日星期六 05:00:00 GMT
set-cookie:myCookie=s%3A6eb8444b-48dd-4084-91aa-3cf14c029b30.c0vbfPAvk6IkAlUE3nGXLEP3p09FDZejokgLyl5KifA; 路径=/api;过期=2015 年 9 月 5 日星期六 23:12:35 GMT
当我检查浏览器的资源选项卡时,我发现这个 cookie 没有被设置。 如何设置此 cookie?
更新:
我将此添加到 jQuery AJAX 请求中:
xhrFields: {
withCredentials: true
}
我现在可以看到该请求包含一个 Cookie 标头,并且服务器上只存储了一个会话。所以它按预期工作。
但是,我仍然没有在资源选项卡中看到 cookie。
【问题讨论】:
-
找到问题的正确答案