我正在使用Grape on Rails。虽然我无法为它设置CORS。
rack-cors gem解释了如何在 application.rb 中为“Rails”设置它。虽然没有说明如何为Grape on Rails启用它。
有什么想法吗?
答案 0 :(得分:2)
一些简单的步骤,我们准备好了!
将以下内容添加到您的Gemfile并捆绑安装:
gem 'rack-cors', :require => 'rack/cors'.
将您的API模块添加到config / application.rb并配置Rack-CORS中间件:
module MyAppRails
class Application < Rails::Application
config.middleware.use Rack::Cors do
allow do
origins "*"
resource "*", headers: :any, methods: [:get, :post, :put, :delete, :options]
end
end
config.active_record.raise_in_transactional_callbacks = true
end
使用origins "*"
,我们指定我们的API将接受来自整个互联网中任何域的HTTP请求。
使用resource "*"
,我们指定跨源请求可以访问我们的任何资源(尽管我们目前只有一个 - 毕业生的资源)。
然后我们指定使用任何HTTP方法的跨源请求将被接受 - 但是,如果您记得,我们在API模块中定义了我们的Graduates类,以仅响应所有梯度或仅一个毕业的请求。我们稍后可以添加其他HTTP方法。
答案 1 :(得分:0)
您可以手动添加标题,如葡萄问题中所述:tutorial on transfer learning。
我会尝试使用rack-cors中间件:直接使用它或用Grape Middleware(https://github.com/ruby-grape/grape/issues/170)包装它