コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

RailsでCrossOriginの設定をする場合は rack-cors のgemを入れればすぐ終わる

APIモードで作らなかったので、異なるドメインからアクセスされるAPIをやるために Access-Control-Allow-Origin とか設定せねば…とか思ったらすんなりできたのでメモ

環境

$ bin/rails --version
Rails 5.2.2.1

使うgem

cyu/rack-cors: Rack Middleware for handling Cross-Origin Resource Sharing (CORS), which makes cross-origin AJAX possible.

導入方法

Gemfileに書いたら、application.rbに追記するだけ

module HogeApp
  class Application < Rails::Application
    # Initialize configuration defaults for originally generated Rails version.
    config.load_defaults 5.2

    # 中略


    # rack-corsここから
    config.middleware.insert_before 0, Rack::Cors do
      allow do
        # 許可するドメイン
        origins "localhost:3000", "example.com"
        # 許可するヘッダとメソッドの種類
        resource "*",
                 headers: :any,
                 methods: [:get, :post, :patch, :delete, :head, :options]
      end
    end
    # ここまでrack-cors
  end
end

参考リンク