我在使用 ajax 和带有 Rails 的 cookie 时遇到问题。我目前的设置如下:
我在 domainfoo.com 有一个应用程序设置,这是一个 Rails 应用程序,在 domainbar.com 有一个静态网页设置,我想通过 ajax 与 domainfoo.com 通信。
domainfoo.com 应用程序设置如下:
应用程序.rb
before_filter :allow_cross_domain_access
def allow_cross_domain_access
response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Access-Control-Allow-Methods"] = "*"
end
和应用程序的主要部分(check_controller.rb):
class CheckController < ApplicationController
if cookies[:test]
puts "cookie value: #{cookies[:test]}"
else
cookies[:test] = { :value => '123',
:domain => :all,
:path => "/check"
}
end
end
路由http://examplefoo.com/check映射到该控制器。在 domainbar.com 的静态页面上,我只有一个简单的 jQuery ajax GET 请求,如下所示:
$(document).ready(function(){
$.get('http://domainfoo.com/check', function(data) {
console.log(data);
});
});
当我在 chrome 中查看网络流量时,我可以看到来自服务器的 cookie,它在浏览器中设置,但是当我再次发出 ajax 请求时,cookie 永远不会被发送回服务器。我确定有些东西我忽略了,但我不确定它是什么。