【发布时间】:2015-02-27 14:44:46
【问题描述】:
我正在为我的 Rails 网站设计一套 api。我已经编写了 api,它们在本地工作,我用 RSpec 和 OSX 应用程序“Rested”测试它们。
现在我必须处理“CORS”:目前我所有的 api 都只是“GET” api,没有帖子或补丁。
我需要从必须处理内容提要的应用和另一个域访问我的 api。
我对 CORS 不太熟悉,我了解到最好的选择是使用“Rack Cors Gem”。
Rack-cors 文档建议将其放入 application.rb
module YourApp
class Application < Rails::Application
# ...
config.middleware.insert_before 0, "Rack::Cors" do
allow do
origins '*'
resource '*', :headers => :any, :methods => [:get, :post, :options]
end
end
end
end
我担心安全性:我读了一些东西,但我不明白为什么使用 '*' 很危险
在我的例子中,api 位于 www.example.com/api/v1
我可以修改 rack-cors 配置,只用这种方式将 cors 添加到我的 api 中吗?
module YourApp
class Application < Rails::Application
# ...
config.middleware.insert_before 0, "Rack::Cors" do
allow do
origins '*'
resource '\api\v1', :headers => :any, :methods => [:get, :options]
end
end
end
end
【问题讨论】:
标签: ruby-on-rails ruby api rack