我需要一个 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 来修复(同一篇文章)。
