Проблема CORS с HTTP-запросами при отправке http get запроса на IP хоста

У меня есть среда разработки с локально запущенным веб-сервером django python.

Я настроил django для ответа на запросы API, и всякий раз, когда я отправляю http GET запросы на http://localhost:8000/api/service/, сервер отвечает, как ожидалось.

Проблема возникает всякий раз, когда я отправляю тот же запрос, используя IP хоста, т.е. http://192.168.15.66:8000/api/service/ (я понял проблему, когда пытался получить данные api с другого хоста в локальной сети)

Я использую postman для отправки запросов, чтобы проверить, работает он или нет, хотя, я разрабатываю приложение javascript react, которое уже потребляет данные api.

В веб-приложении javascript есть немного больше информации. В консоли браузера отображается сообщение об ошибке:

Cross-Origin Request Blocked: Политика одинакового происхождения запрещает чтение удаленного ресурса по адресу http://192.168.15.66:8000/api/service/. (Причина: CORS-запрос не удался). Код состояния: (null).

Я искал вокруг и попробовал несколько предложений, таких как:

установка server/setting.py ALLOWED_HOSTS на:

  • ['192.168.15.66'] , к [] и к ['*']

whitelisting with CORS_ORIGIN_WHITELIST to:

  • ['192.168.15.66'] и до ['*']

Вот мое значение переменной MIDDLEWARE в файле setting.py:

 MIDDLEWARE = [
    "django.middleware.security.SecurityMiddleware",
    "django.contrib.sessions.middleware.SessionMiddleware",
    "corsheaders.middleware.CorsMiddleware",
    "django.middleware.common.CommonMiddleware",
    "django.middleware.csrf.CsrfViewMiddleware",
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    "django.contrib.messages.middleware.MessageMiddleware",
    "django.middleware.clickjacking.XFrameOptionsMiddleware",
] 

Есть подсказки, что я могу упустить?

При запуске django мне приходилось передавать IP хоста вместе со стартовым скриптом:

python manage.py runserver ip-addr:8000

Это делает все запросы из сети разрешенными по правилам CORS.

Вернуться на верх