CORS. Rails API + приложение React (rack-cors + fetch). Сервер зависает на rack/cors.rb:97, пока реагирует на запросы

Я пытаюсь делать запросы GET на мой сервер rails. На сервере я использую стойку с настройками по умолчанию

  #config/application.rb

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

Также я добавляю заголовки к каждому действию

class ApplicationController < ActionController::API
  before_action :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, PUT, DELETE, GET, OPTIONS'
    headers['Access-Control-Request-Method'] = '*'
    headers['Access-Control-Allow-Headers'] = 'Origin, X-Requested-With, Content-Type, Accept, Authorization'
    headers['Access-Control-Expose-Headers'] = 'Origin, X-Requested-With, Content-Type, Accept, Authorization'
  end
end

Я могу делать запросы GET почтальоном или в браузере. Интересно то, что я также могу делать GET-запросы из приложения React, используя fetch, но только если я сначала сделаю хотя бы один запрос почтальоном или браузером.

И если я выполню запрос GET сразу после запуска сервера, он зависнет на rack/cors.rb:97.

Буду признателен за помощь в поиске ошибки.

ОБНОВЛЕНИЕ: причина этого немного другая. Я также мог бы сделать GET-запрос от реагирующего приложения, но сервер зависает, когда я делаю 2 GET-запроса одновременно.

0 ответов

Другие вопросы по тегам