如何从不同的子域中保存cookie?

时间:2015-10-01 19:23:06

标签: javascript http cookies

我在本地计算机上通过端口8000上运行的应用程序使用域appdev.my_company.com提供了一个简单的html页面。

相同的应用程序提供来自域appcenter.my_company.com的API。

我在API中有一个端点,它设置一个如下所示的会话cookie标头:

Set-Cookie:gac_3_6e...="VC1_69...=="; Domain=.my_company.com; Path=/

我从静态页面向所述端点发出了一个ajax请求,希望cookie可以设置,因为域是相同的(只有子域不同):

/* In http://appdev.my_company.com:8000 */
$.ajax({
    url: "http://appcenter.my_company.com:8000/login/",
    method: 'POST',
    data: JSON.stringify(data),
    success: function(){
        console.log("logged in");
    },
    headers: {
        "Content-Type": "application/json"
    }
});

但它没有。

cookie需要在浏览器窗口中与当前域相关联,因为我们需要重新加载一个获取此cookie的插件(cookie来自第三方服务器)。

如何让这个cookie在浏览器中注册?如果我查看Web控制台的“资源”选项卡,则不会显示任何cookie。

我查看了domain matchingRFC6265,看来这应该可行。

在这种情况下可能出现什么问题?

1 个答案:

答案 0 :(得分:1)

请结帐CORS。这是他们试图解决的确切问题。唯一的另一种方法(据我所知)是通过您的服务器将请求代理到其他来源。