我似乎无法在我的浏览器中以 javascript 设置 cookie,以作为 jQuery ajax 请求的一部分发送到子域 Web 应用程序。
我有两个 Web 应用程序,一个在根域上,一个在子域上。为了绕过跨站点脚本限制,我的子域 Web 应用程序实现了一个全局操作过滤器,以将 Access-Control-Allow-Origin 标头添加到其所有 http 响应的根域。这允许从根域到子域的 ajax 调用工作。
但是,当我使用以下代码在 javascript 中创建 cookie 时...
var myDate = new Date();
myDate.setMonth(myDate.getMonth() + 12);
document.cookie = 'searchId=' + ids.generateGUID() + ';domain=' + ".root.example.com" + ';path=/;expires=' + myDate;
... cookie 不会在后续的 ajax 请求中传递给 -sub 域服务器。
我认为 CORS 标头并在 cookie 中设置域和路径将允许子域 Web 应用程序访问 cookie,但浏览器(chrome 21.0.1180.89 和 firefox 17.0.1)似乎不提供 cookie。
使用子域和 ajax 请求时,我是否误解了浏览器 cookie 访问限制?
谢谢