Невозможно получить данные из Rails в ReactJS - PullRequest
0 голосов
/ 01 ноября 2019

Я использую интерфейсный источник ReactJS на порту 5555, а мой сервер - Rails на порту 8888. Я пытался извлечь данные из Rails в React, используя:

const url = 'http://localhost:8888/problems';
fetch(url)
  .then(res => {
    res.json();
  })
  .then(response => {
    console.log(response);
  })
  .catch(error => {
    console.log(error);
  });

, ноЯ получил сообщение:

Access to fetch at 'http://localhost:8888/problems' from origin 'http://localhost:5555' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

Я понятия не имею об этой ошибке. Пожалуйста, помогите мне исправить это

Ответы [ 2 ]

1 голос
/ 01 ноября 2019

Узнайте больше о CORS

, чтобы исправить это, вам нужно стеллажи в вашем Gemfile gem 'rack-cors'

в config/application.rb

# 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

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

0 голосов
/ 01 ноября 2019

Как сказано в комментарии, это ошибка CORS.

Вы можете исправить это в соответствии с этим вопросом allow-everything-through-cors-policy

...