ruby-on-rails CORS不像ruby '2.7.6',rails '5.1.7'中的gem 'rack-cors'那样工作

1rhkuytd  于 4个月前  发布在  Ruby
关注(0)|答案(1)|浏览(59)
require 'rack/cors'

Rails.application.config.middleware.insert_before 0, Rack::Cors do
  allow do
    origins CORS_ORIGINS[Rails.env]
    resource '*', :headers => :any, :methods => [:get, :post, :options, :put, :delete],credentials: true
  end
end

字符串
我正在使用**gem 'rack-cors'**这在我的不同项目中工作得很好,但目前在ruby '2.7.6',rails '5.1.7'中我面临一些问题,我不确定这是因为ruby on rails的版本还是其他原因。
/config/initializers/cors.rb
正如gem 'rack-cors'中提到的,在上面的文件中编写的代码,也在config.ru中尝试过,后来在/config/application.rb中尝试过
我在打印一些信息,

Rails.application.config.middleware.insert_before 0, Rack::Cors do
      allow do
        puts "************cors************"
        origins CORS_ORIGINS[Rails.env]
        resource '*', :headers => :any, :methods => [:get, :post, :options, :put, :delete],credentials: true
      end
    end


在上述情况下也会打印此消息,但在服务器上部署时,这不起作用。

cgyqldqp

cgyqldqp1#

我有一个几乎类似的环境,并有一个工作CORS管理.也许这有助于.我整理出起源fesert,然后把资源.

Rails.application.config.middleware.insert_before 0, Rack::Cors do
  allow do
    origins do |source, _env|
      # this proc should return true or false
      # You can dynamically check the database/redis or any other storage for your origins
      Origin.list.include?(Addressable::URI.parse(source)&.host)
    end
    resource '*',
             headers: %i[get post options put delete],
             methods: :any
  end
end

字符串

相关问题