Ale*_*dre 15 cookies subdomain
我在www.example.com上有一个webapp,在api.example.com上有一个API.
webapp对API进行ajax调用.
在某个地方,我需要在api.example.com上放置一个cookie来保持会话跟踪.
为了跟踪我的问题,我在webapp和api的两个子域上设置了测试cookie.webapp在.exemple.com上设置了一个cookie,api在.exemple.com上设置了一个,在api.exemple.com上设置了另一个.Cookies仅使用Domain = .exemple.com设置.没有路径,没有HTTPOnly.
注意:最后我在api.exemple.com上只需要一个.但这些是用于测试的.
使用我的浏览器(Firefox 16)直接查询工作正常.查询api:设置并发送两个cookie.在www上查询:设置了cookie,并且也发送了来自api的两个.(当然我在api之后查询www).
现在,我清理浏览器cookie并仅查询www.在www上查询:工作正常,与以前一样.关于api的子查询,来自www的ajax请求:不发送cookie.Set-Cookies什么都不做.使用Firebug我在响应中看到了cookie.但是在后续请求或页面信息中没有它们的痕迹.
我事件试图在Firefox上启用cookie登录.绝对没有来自api的cookie的痕迹,甚至没有拒绝通知.
最后我只需要一种在api上存储一个cookie的方法.为此,我相当开放:)
信息:这两个服务器是NodeJS.我试图在客户端(document.cookies)设置服务器端的cookie(Set-Cookie标头),手动使用firebug.
其他帖子我已经检查过没有解决方案(以及其他许多我不记得的):
Ale*_*dre 41
Access-Control-Allow-Credentials: true
Run Code Online (Sandbox Code Playgroud)
withCredentials
该请求$.ajax({
url: a_cross_domain_url,
xhrFields: {
withCredentials: true
}
});
Run Code Online (Sandbox Code Playgroud)
否则,无论标头如何,XMLHttpRequest
都不会发送cookie Access-Control-Allow-Credentials
.
Access-Control-Allow-Origin
Access-Control-Allow-Origin: http://www.example.com
Run Code Online (Sandbox Code Playgroud)
通配符*
不起作用.如果withCredentials
设置了,浏览器将丢弃响应.
参考文献:
http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/
https://developer.mozilla.org/en-US/docs/HTTP_access_control
http://arunranga.com/examples/access-control/credentialedRequest.html
http://api.jquery.com/jQuery.ajax/
归档时间: |
|
查看次数: |
10772 次 |
最近记录: |