在Grape on Rails中启用CORS

问题描述 投票:1回答:2

我正在使用Grape on Rails。尽管我无法为此设置CORS。

rack-cors gem解释了如何在application.rb中将其设置为“ Rails”。尽管没有显示如何为Rails上的Grape启用它。

有什么想法吗?

ruby-on-rails cors grape-api
2个回答
2
投票

设置机架CORS

几个简单的步骤,我们就可以开始了!

将以下内容添加到您的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模块内定义了Google毕业生类,以仅响应所有毕业生或仅一个毕业生的请求。我们稍后可以添加其他HTTP方法。


0
投票

您可以按照以下葡萄问题之一的建议手动添加标题:https://github.com/ruby-grape/grape/issues/170

我将尝试使用机架式中间件:直接使用它或将其与Grape中间件(http://www.rubydoc.info/github/intridea/grape/Grape/Middleware/Base)包装在一起

© www.soinside.com 2019 - 2024. All rights reserved.