我正在尝试实现一些代码,使我可以让一个子域与另一个子域进行通信,例如one.example.com
和two.example.com
. 这两个站点能够共享 cookie 和会话数据,因为我已经设置了要使用的 cookie .example.com
。
当我通过标准 HTTP 访问任一站点时,我可以转储会话并查看预期数据。但是,如果我通过带有 jQuery 的 JavaScript 执行此操作,$.ajax()
则转储的会话数据为空。在这两种情况下,我都使用 PHP 转储会话数据。
我尝试了以下解决方案,但还没有运气(http://forum.kohanaframework.org/discussion/9895/problem-session-expired-with-ajax/p1)。我还使用了更新版本的 Kohana (3.3)。
我还尝试在它们到达控制器后立即设置标题:
$this->response->headers('Access-Control-Allow-Origin', 'http://one.example.com');
$this->response->headers('Access-Control-Allow-Credentials', 'true');
$this->response->headers('Access-Control-Allow-Methods', 'POST, GET, OPTIONS');
但是 Chrome 检查器仍然显示Access-Control-Allow-Origin
为*
.