[解決済み] CORSポリシーで何でも許可する
2022-12-09 16:43:51
質問
CORS を無効にするにはどうすればよいですか。何らかの理由で、許可されたオリジンとヘッダーをワイルド カード化しましたが、Ajax リクエストはまだ、オリジンが CORS ポリシーによって許可されていないことを訴えています...。
私のアプリケーション コントローラ :
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :current_user, :cors_preflight_check
after_filter :cors_set_access_control_headers
# For all responses in this controller, return the CORS access control headers.
def cors_set_access_control_headers
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
headers['Access-Control-Allow-Headers'] = '*'
headers['Access-Control-Max-Age'] = "1728000"
end
# If this is a preflight OPTIONS request, then short-circuit the
# request, return only the necessary headers and return an empty
# text/plain.
def cors_preflight_check
if request.method == :options
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
headers['Access-Control-Allow-Headers'] = '*'
headers['Access-Control-Max-Age'] = '1728000'
render :text => '', :content_type => 'text/plain'
end
end
private
# get the user currently logged in
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
helper_method :current_user
end
のルートになります。
match "*all" => "application#cors_preflight_check", :constraints => { :method => "OPTIONS" }
match "/alert" => "alerts#create"
match "/alerts" => "alerts#get"
match "/login" => "sessions#create"
match "/logout" => "sessions#destroy"
match "/register" => "users#create"
編集---。
もやってみました。
config.middleware.use Rack::Cors do
allow do
origins '*'
resource '*',
:headers => :any,
:methods => [:get, :post, :delete, :put, :options]
end
end
application.rbにある
--edit 2---
問題は、Chrome ExtensionsがCORSをサポートしていない可能性があることだと思います。CORSをバイパスして情報を取得するにはどうしたらよいでしょうか?プリフライトチェックにどのように対応すればよいでしょうか?
どのように解決するのですか?
私はrails-apiを使用した公開APIで同じ要求をしています。
また、beforeフィルターでheaderを設定しました。このような感じです。
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Allow-Methods'] = 'POST, PUT, DELETE, GET, OPTIONS'
headers['Access-Control-Request-Method'] = '*'
headers['Access-Control-Allow-Headers'] = 'Origin, X-Requested-With, Content-Type, Accept, Authorization'
Access-Control-Request-Methodヘッダを見落としたようです。
関連
-
[解決済み] Railsで `before_action` での `only:` はどのように機能するのですか?
-
[解決済み] Access-Control-Allow-Originヘッダーはどのように機能するのですか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] Access-Control-Allow-Origin複数オリジンのドメイン?
-
[解決済み] REST APIからデータを取得しようとしたときに、要求されたリソースに'Access-Control-Allow-Origin'ヘッダーが存在しない。
-
[解決済み] CORSです。資格情報フラグが true の場合、Access-Control-Allow-Origin でワイルドカードを使用できない。
-
[解決済み】http://localhost CORS originが機能しないのはなぜですか?
-
[解決済み】リクエストヘッダーフィールドのAccess-Control-Allow-Headersが許可されない。
-
[解決済み】CORS(cross-origin resource sharing)投稿リクエストを動作させる方法
-
[解決済み] CORS - httpリクエストの「プリフライト」はどうやるの?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】警告:定数 ::Fixnum は非推奨 新しいモデルを生成するとき
-
[解決済み】Rails 4 RoutingError: ルートが一致しない[POST]。
-
[解決済み] pg gem をインストールしようとすると 'libpq-fe.h' ヘッダが見つからない
-
[解決済み] ウェブパッカーがアプリケーションを見つけ出せない
-
[解決済み] 該当するルートがない [GET] "demo/hello"
-
[解決済み] PG::ConnectionBad - サーバーに接続できませんでした。接続が拒否されました。
-
[解決済み] Errno::EACCESS: パーミッションが拒否された @ dir_s_mkdir
-
[解決済み] railsでhidden fieldタグを使用する方法
-
[解決済み] rspecにおけるassignsの意味
-
[解決済み] RubyとRailsの "Date.today "フォーマット