Skip to main content
 首页 » 编程设计

jquery之多子域cookie和ajax问题

2026年07月31日7oomusou

我需要一个 HttpOnly 身份验证 cookie 来工作:

mydomain.com 
www.mydomain.com 
abc.mydomain.com 

这样我就可以通过一次登录登录到所有三个地方。

通过将我的 cookie 域设置为:

,效果很好
.mydomain.com 

这是设置 cookie 的响应 header :

MYAUTHCOOKIE=FOO; domain=.mydomain.com; path=/; HttpOnly 

这对于正常的浏览器请求来说一切正常。

但是,我需要从 mydomain.com 和 www.mydomain.com 向 abc.mydomain.com 发出 AJAX 请求。

当我发出请求时,它没有传递身份验证 cookie。为什么会这样,我该怎么办?

如果我向 JS 所在页面所在的同一主机发出请求,它会发送 cookie :s

这是我的请求代码:

$.ajax({ 
    type: "POST" 
    , data: { data: { foo: bar} } 
    , dataType: "json" 
    , url: "http://abc.mydomain.com/foo" 
    , timeout: 5000 
    , success: function (data, textStatus) { 
        alert('woo!'); 
    } 
    , error: function (xhr, textStatus, error) { 
        alert('meh'); 
    } 
}); 

这是一些跨域策略吗?为什么 cookie 域无法实现此功能?

谢谢

请您参考如下方法:

根据same origin policy ,子域确实对您的顶级域“敌对”,但可以通过设置 document.domain 来修复(同一篇文章)。