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-запроса одновременно.