ruby on rails - rack-cors 具有不同资源的多个来源
ruby on rails - rack-cors multiple origins with different resources
我正在我的 rails 应用程序中使用 rack-cors gem 实现 CORS,但我不确定如何为不同的来源定义不同的资源。
我需要这样的东西:
config.middleware.insert_before 0, Rack::Cors do
allow do
origins 'http://localhost:3000'
resource '/api/*', headers: :any, methods: [:get, :post, :options, :put, :delete]
end
allow do
origins 'http://localhost:6000'
resource '*', headers: :any, methods: [:get, :post, :options, :put, :delete]
end
end
所以它只允许“http://localhost:3000”访问'/api/*'
并允许“http://localhost:6000”访问所有内容。可能吗?
上面的代码是正确的 code/syntax 吗?
谢谢。
经过检查和测试,事实证明这是正确的语法。您可以根据需要添加任意数量的块:
allow do
origins '[the domain]'
resource '[the resource/directories]', headers: :any, methods: [:get, :post, :options, :put, :delete]
end
我知道这有点旧,但对于那些发现这个的人,我用 Rails 5.1.4 api 仅
以不同的方式解决这个问题
-
起源
ENV['CORS_ORIGINS'] = 'https://domain.first.com, http://another.origin.io'
科尔斯
Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins ENV['CORS_ORIGINS'].split(',').map { |origin| origin.strip }
resource '*',
headers: :any,
methods: [:get, :post, :put, :patch, :delete, :options, :head]
end
end
我正在我的 rails 应用程序中使用 rack-cors gem 实现 CORS,但我不确定如何为不同的来源定义不同的资源。
我需要这样的东西:
config.middleware.insert_before 0, Rack::Cors do
allow do
origins 'http://localhost:3000'
resource '/api/*', headers: :any, methods: [:get, :post, :options, :put, :delete]
end
allow do
origins 'http://localhost:6000'
resource '*', headers: :any, methods: [:get, :post, :options, :put, :delete]
end
end
所以它只允许“http://localhost:3000”访问'/api/*' 并允许“http://localhost:6000”访问所有内容。可能吗?
上面的代码是正确的 code/syntax 吗?
谢谢。
经过检查和测试,事实证明这是正确的语法。您可以根据需要添加任意数量的块:
allow do
origins '[the domain]'
resource '[the resource/directories]', headers: :any, methods: [:get, :post, :options, :put, :delete]
end
我知道这有点旧,但对于那些发现这个的人,我用 Rails 5.1.4 api 仅
以不同的方式解决这个问题-
起源
ENV['CORS_ORIGINS'] = 'https://domain.first.com, http://another.origin.io'
科尔斯
Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins ENV['CORS_ORIGINS'].split(',').map { |origin| origin.strip }
resource '*',
headers: :any,
methods: [:get, :post, :put, :patch, :delete, :options, :head]
end
end