【发布时间】:2012-12-31 00:47:21
【问题描述】:
我似乎无法在我的浏览器上以 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;
...在后续的ajax请求中不会将cookie传递给-sub域服务器。
我认为 CORS 标头和在 cookie 中设置域和路径将允许子域 Web 应用程序访问 cookie,但浏览器(chrome 21.0.1180.89 和 firefox 17.0.1)似乎不提供饼干。
我在使用子域和ajax请求时是否误解了浏览器cookie访问限制?
谢谢
【问题讨论】:
标签: jquery asp.net-mvc cookies xss cors