【问题标题】:How to set a cookie on a separate domain in Rails如何在 Rails 中的单独域上设置 cookie
【发布时间】:2010-10-15 06:50:11
【问题描述】:

如何在使用 javascript 调用调用我的网站的不同域上设置 cookie?它适用于FF3,但不适用于IE6。

我的服务器是从单独的站点和域上的 javascript 标记调用的。结果返回用数据填充其页面的javascript(它是一个小部件)。我正在尝试使用 domain=".mydomain.com" 和 path="/" 设置 cookie。它适用于 Firefox,但不适用于 IE。如果我从自己的域测试 javascript 调用,它在 IE 中可以正常工作。

有谁知道如何使用 Rails 让跨域 cookie 设置在 IE 中工作?

【问题讨论】:

    标签: ruby-on-rails cookies cross-domain


    【解决方案1】:

    只要您的服务器在其自己的域内或从其域的子域设置 cookie,这应该可以工作

    cookies[cookie_name] = {
       :value => 'a value',
       :expires => 1.year.from_now,
       :domain => 'example.com'
     }
    

    它不适用于任何其他域。

    要让它在 IE6 中运行,您可能需要一个有效的 P3P 策略标头

    像这样作为标题发送的东西应该这样做:

    headers["p3p"] = 'CP="CAO PSA OUR"'
    

    【讨论】:

    • 我就是这样设置的:cookies[cookie_name] = { :value => 'x', :expires => 1.day.from_now, :domain => '.mydomain.com' }是的,它确实适用于 Firefox。我实际上认为它不会,但它确实如此。但在 IE 中,我看到它试图设置标题,但页面加载后 cookie 不存在。
    • 你怎么知道的?你能发布你的代码告诉你cookie不存在吗?
    • 我正在使用 Fidler 查看对我的域的调用并查看标头响应。我正在使用 IE Developer 工具栏查看我的页面(和他们的)上的 cookie,但它不存在。当我返回我的网站并且它不存在时,我也会尝试获取 cookie。在 FF 中一切正常。
    • 您要在谁的域中设置它?您发送的响应的域,还是调用您的 javascript 的页面的域?
    猜你喜欢
    • 1970-01-01
    • 2018-11-22
    • 2011-01-02
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多