Проблема с CORS при обновлении Rails 4 до Rails 5

Я обновляю приложение Rails из Rails 4.1.1 в Rails 5.1.4, У меня есть 2 приложения, одно веб-приложение (используется для angular), а другое - это приложение API.

Что я делаю, я отправляю запрос от Web app(Rails with Angular) и получение данных из API app, Но когда я отправляю запрос от Web app есть ошибка, упомянутая ниже:

Не удалось загрузить http://api.myapp:3001/user: Ответ на запрос предварительной проверки не проходит проверку контроля доступа: значение заголовка "Access-Control-Allow-Origin" в ответе не должно быть подстановочным знаком " *'когда режим учетных данных запроса' include '. Источник ' http://myapp:3000/', следовательно, не имеет доступа. Режим учетных данных запросов, инициируемых XMLHttpRequest, контролируется атрибутом withCredentials.

http://myapp:3000' -> Web application and request sending to API

http://api.myapp:3001/user -> API application to send response

После google проблема, я нашел один драгоценный камень под названием rack-cors, В Web и API оба приложения я добавил

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

Но все равно получаю проблему. Пожалуйста, дайте мне знать.

1 ответ

Ну и сообщение:

Значение заголовка "Access-Control-Allow-Origin" в ответе не должно быть подстановочным знаком "*", если режим учетных данных запроса "include"]

Похоже, что вы отправляете учетную информацию из своего приложения Angular, а домен не входит в белый список. Вы можете попробовать, для теста, установить withCredentials в false или разрешить домен.

Это может помочь вам: http://50linesofco.de/post/2017-03-06-cors-a-guided-tour

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