Railsでのajaxとcookieに問題があります。私の現在の設定は次のとおりです。
Rails アプリケーションである domainfoo.com に 1 つのアプリケーションをセットアップし、domainbar.com に ajax を介して domainfoo.com と通信する静的 Web ページをセットアップします。
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 がサーバーに送り返されません。見落としているものがあると確信していますが、それが何であるかはわかりません。