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

时间:2015-06-23 09:01:11

标签: jquery ajax post cookies cors

我正在从我的前端到另一个域的后端发布帖子以创建与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

     

缓存控制:无缓存,必须重新验证

     

连接:保活

     

内容类型:文本/无格式

     

日期:星期二,2015年6月23日08:49:11 GMT

     

Expires:Sat,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。

1 个答案:

答案 0 :(得分:0)

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