2016-07-20 4 views
5

Я пытаюсь использовать путепровода API http://wiki.openstreetmap.org/wiki/Overpass_API с JavaScript XMLHttpRequest в проекте работает на Django, но я получаю ошибкуВключение CORS (Cross Origin Request) в Django

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.google.com/accounts/ClientLogin. (Reason: CORS header 'Access-Control-Allow-Origin' missing). 

. Я получаю эту ошибку независимо от того, использую ли я GET или POST, а также с любого другого хоста, а не только API-интерфейса переходов.

Я установил Джанго-corsheaders https://github.com/ottoyiu/django-cors-headers и следовали инструкциям там, поставив 'corsheaders' в INSTALLED_APPS и 'corsheaders.middleware.CorsMiddleware', '', django.middleware.common.CommonMiddleware в MIDDLEWARE_APPS и I Установлен

CORS_ORIGIN_ALLOW_ALL = true 

в settings.py, но ничего не работает. Я выполняю его локально с

python manage.py runserver 

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

Пожалуйста, дайте мне знать, если мне что-то не хватает.

+0

Вы получаете эту ошибку в javascript, который пытается получить доступ к openstreetmap/overpass? –

+0

Да, я пытаюсь использовать XmlHttpRequest в javascript. – Abendsen

+0

Это очевидно, не отвечает на вопрос. Я спрашиваю, является ли сайт, на котором вы пытаетесь включить CORS, - это сайт, который получает запросы от другого источника или запросы на другое происхождение ... т. Е. Какой URL-адрес, который получает ошибку CORS –

ответ

4

У меня была такая же проблема при попытке получить доступ к моему Django Rest Framework API, размещенному на Heroku с моего ноутбука (localhost). Я использую Django 1.10.2, DRF 3.4.7 и python v3.4.

я pip install django-cors-headers (версия 1.2.2) и настроил его, как говорят docs, а затем та же ошибка снова :(

Продолжайте поиск в течение нескольких часов, а затем он ударил меня!

Я сделал pip install django-cors-middleware (версия 1.3.1) без удаления пакета django-cors-headers. Также я не касался вещи в моем файле settings.py (он был настроен как настройки django-cors-headers, хотя эти два пакета не имеют большого отличия - последний является вилкой от первого).

Хит обновления (от локального хоста), и все работает блестяще!

Теперь я смог получить данные от myapp.herokuapp.com через метод jQuery's ajax.