Как настроить CORS Accept Headers в Rails - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь настроить CORS принимать заголовки в рельсах, которые, когда я сделал, как показано ниже, не позволяют мне сделать это, поскольку он возвращает 404 с запросом OPTIONS,

контроллер приложения

class ApplicationController < ActionController::Base
  before_action :set_paper_trail_whodunnit, :cors_set_access_control_headers
  skip_before_filter :verify_authenticity_token

  def verify_api_key
    return if request.headers["HTTP_API_KEY"] == Rails.configuration.x.api_key
    render json: { status: :unauthorized }, status: :unauthorized
  end
def cors_preflight_check
  if request.method == 'OPTIONS'
    cors_set_access_control_headers
    render text: '', content_type: 'text/plain'
  end
end

protected

def cors_set_access_control_headers
  response.headers['Access-Control-Allow-Origin'] = '*'
  response.headers['Access-Control-Allow-Methods'] = 'POST, GET, PUT, PATCH, DELETE, OPTIONS'
  response.headers['Access-Control-Allow-Headers'] = 'Origin, Content-Type, Accept, Authorization, Token, Auth-Token, Email, X-User-Token, X-User-Email'
  response.headers['Access-Control-Max-Age'] = '1728000'
end
end

application.rb


    config.action_dispatch.default_headers = {
    'Access-Control-Allow-Origin' => '*',
    'Access-Control-Request-Method' => %w{GET POST OPTIONS}.join(","),
    'Access-Control-Allow-Methods' => %w{GET POST OPTIONS}.join(",")
}

Может кто-нибудь помочь?

1 Ответ

1 голос
/ 20 сентября 2019

Если вы не против использовать драгоценные камни, отметьте rack-cors .

в config/application.rb, вы можете настроить все, что вам нужно.

module YourApp
  class Application < Rails::Application
    # ...

    # Rails 5

    config.middleware.insert_before 0, Rack::Cors do
      allow do
        origins '*'
        resource '*', headers: :any, methods: [:get, :post, :options]
      end
    end

    # Rails 3/4

    config.middleware.insert_before 0, "Rack::Cors" do
      allow do
        origins '*'
        resource '*', headers: :any, methods: [:get, :post, :options]
      end
    end
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...