【问题标题】:Create user session and set cookie with jQuery Ajax POST使用 jQuery Ajax POST 创建用户会话并设置 cookie
【发布时间】: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。

【问题讨论】:

  • 找到问题的正确答案

标签: jquery ajax post cookies


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-08-22
    • 1970-01-01
    • 2012-08-04
    • 2012-04-27
    • 1970-01-01
    • 2013-01-27
    • 2014-08-27
    • 1970-01-01
    • 2015-06-07
    相关资源
    最近更新 更多