我正在尝试将Rack :: Cors与我的Rails 4应用程序一起使用,以便我可以执行基于JSON的API.
CORS在我的Gemfile中是这样的:
gem 'rack-cors', :require => 'rack/cors'
Run Code Online (Sandbox Code Playgroud)
我正在我的application.rb文件中进行配置,如下所示:
config.middleware.insert_after Rails::Rack::Logger, Rack::Cors, :debug => true, :logger => Rails.logger do
allow do
origins '*'
resource '/messages*', :headers => :any, :methods => [:post, :options]
end
end
Run Code Online (Sandbox Code Playgroud)
我插入后Rails::Rack::Logger试图获取调试信息.
我正在使用CURL来测试它,这是我一直在运行的:
curl --verbose --request OPTIONS http://jasonbutzinfo.herokuapp.com/messages.json --header 'Origin: http://www.jasonbutz.info' --header 'Access-Control-Request-Headers: Origin, Accept, Content-Type' --header 'Access-Control-Request-Method: POST'
Run Code Online (Sandbox Code Playgroud)
当我在本地计算机上运行rails应用程序时,它可以正常运行.当我点击Heroku应用程序时,这就是我得到的:
> OPTIONS /messages.json HTTP/1.1
> User-Agent: curl/7.30.0
> Host: jasonbutzinfo.herokuapp.com
> Accept: */*
> Origin: http://www.jasonbutz.info
> Access-Control-Request-Headers: Origin, Accept, Content-Type
> Access-Control-Request-Method: …Run Code Online (Sandbox Code Playgroud)