Подтвердить что ты не робот

Проблемы с доступом-контролем-разрешением-источником

У меня есть два локальных приложения-рельсы, которые я хотел бы обсудить друг с другом в целях тестирования... один работает на порту 3000, а другой - на 9292.

Но когда я делаю запрос ajax от localhost: от 3000 до localhost: 9292, я продолжаю получать эту проблему:

Origin http://localhost:3000 is not allowed by Access-Control-Allow-Origin.

Любая идея о том, как это исправить?

Я использую простое приложение Sinatra для получения (только для целей тестирования) запросов JSON. Ниже приведена информация о том, как я получил два рельсовых приложения, разговаривающих друг с другом на локальном хосте (один на порту 3000, а другой на порту 9292)
Рабочий код

before do
  headers['Access-Control-Allow-Origin'] = '*'
  headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
  headers['Access-Control-Allow-Headers'] = 'X-Requested-With, X-Prototype-Version, X-CSRF-Token'
end

after do
  headers['Access-Control-Allow-Origin'] = 'http://localhost:3000/'
end

Надеюсь, это поможет!

4b9b3361

Ответ 1

Кросс-домен AJAX обычно не допускается по соображениям безопасности. JSONP - это вариант, если вы можете его использовать. Если нет, вы можете использовать что-то вроде flXHR, чтобы обойти это ограничение.

Удачи!

Ответ 2

для меня было возвращено состояние 50X/40X. Chrome/WebKit отображает именованную ошибку Access-Control-Allow-Origin.

Я играл с моими ответами, пока не получил 201, и теперь это работает!