Тестирование Rails API с AngularJS и Codepen - PullRequest
0 голосов
/ 17 марта 2019

Возникли проблемы с тем, чтобы заставить мою ручку общаться с моим сервером разработки на localhost.

У меня есть скрипт angularjs, который использует запрос $ http.get для получения некоторого json с сервера, но это приводит к этой ошибке.

Access to XMLHttpRequest at 'localhost:3000/test' from origin 'https://s.codepen.io' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

Сервер Rails и браузер находятся на одной и той же машине, и я могу успешно вызвать страницу, если просто наберу URL-адрес сервера в браузере, но я не уверен, как устранить эту ошибку для скриптов, работающих в codepen ,

В случае заинтересованности запрос в моем javascript просто:

$http.get("localhost:3000/test").then(
   function(response) {
     console.log("success");
   },
   function(response) {
      console.log("failed");
   }
 );

1 Ответ

1 голос
/ 17 марта 2019

Попробуйте раскомментировать камень rack-cors в своем Gemfile.Затем в config/application.rb вы можете настроить Cors примерно так:

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

Имейте в виду, это разрешит доступ из любого источника.Возможно, вы захотите изменить это для своей производственной среды.

...