所以事实是,这段代码非常有效:
response["set-cookie"]="cookieName=#{@cookieValue.split.join}"
我可以设置一个具有正确名称和内容的cookie(是的,split.join也是正确的)。但我也需要设置域名。
我的网站就是这样的域名: mysubdomain.mywebsite.com
但我需要为域mywebsite.com设置cookie。
如果我像这样添加它,那么cookie就不存在了:
response["set-cookie"]="cookieName=#{@cookieValue.split.join};Path=/;Domain=mywebsite.com"
我需要设置一个带有response [“set-cookie”]的cookie,因为它是唯一适用于我的长字符串的方法。我尝试了所有方法,但我需要使用这个方法。
所以问题是:如何通过使用响应[“set-cookie”]设置域来设置域名?
答案 0 :(得分:0)
嗯,更喜欢在这里使用初始化程序。创建一个新文件config/initializers/cookies.rb
,并将以下代码放在那里:
options = {
key: 'your_cookie_name',
domain: 'your_domain'
}
Rails.application.config.session_store :cookie_store, options
这会使您在一个地方进行与Cookie相关的配置,但这不是强制性的。您仍然可以使用domain
选项为Cookie指定域名。
答案 1 :(得分:0)
我无法做到这一点。我认为Rails有一些防止这种情况的安全机制(但是从子域为域设置cookie是正确的。)
但我可以通过javascript实现:
document.cookie = "#{@cookieName}=#{@cookieContent};domain=yourdomain.com"
一行代码,完美运行。只需将它放在您的视图或单独的文件中,并在application.js中需要它我在子域,但最后可以为父域设置cookie。