rack-colsとは
RackアプリケーションにCORSの制御機能を追加するRackミドルウェアのことです。
CORSを使うことで、Webアプリケーションは特になんの回避策も無しでクロスドメインのAJAXの呼び出しを行うことができます。
使い方
インストール方法
Gemfileに以下を記載して、bundle install
するだけです。
gem 'rack-cors'
Railsの設定
config/initializers/cors.rb
に設定を行う。
- origins
- スキーム(http)、ドメイン(example.com)、ポート(8080)を組み合わせたもの。簡単に言うとURLのこと。
-
*
とすることで、すべてのoriginsを許可する。
- resource
- 許可するリソースファイルのこと。
-
*
とすることで、すべてのリソースファイルを許可する。
- headers
- 許可するHTTPヘッダーのこと。
-
any
とすることですべて許可する。
- methods
- 許可するHTTPメソッドのこと。
config/initializers/cors.rb
Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
# どのオリジンからのリクエストも許可する
origins '*'
resource '*',
headers: :any,
methods: [:get, :post, :patch, :put]
end
end
参考
[cyu/rack-cors]
(https://github.com/cyu/rack-cors)
[gem rack-cors の README を翻訳しました]
(https://qiita.com/ikamirin/items/2bd494142610960071a9)
[【Rails6】Gem rack-corsを導入してCORS設定を行う(オリジン・CORSとは何か)]
(https://blog.cloud-acct.com/posts/u-rails-rackcors/)