Рубрики
Без рубрики

CORS объяснил + Включить в Python Projects

CORS CORS («Распределение ресурсов перекрестного происхождения») относится к ситуации, когда домен … Теги с Python, WebDev.

Рост

CORS («Распределение ресурсов перекрестного происхождения») относится к ситуации, когда домен, запрашивающий ресурс, отличается от домена, обслуживающего этот ресурс. Это часто происходит, когда интерфейс и задний конец находятся в разных происхождениях, и в интерфейсе взаимодействует с задней частью с помощью JavaScript Code.

Источник

«Происхождение» – это комбинация протокола (например. http. , https ), домен (например. somedomain.com , localhost ) и порт (например. 80 , 443 , 3000 , 8000 ).

Поэтому все это разные происхождения.

  • http://localhost
  • http://localhost:8000
  • https://localhost

Разрешить Корс

Браузеры ограничивают перекрестные HTTP-запросы, инициированные из скриптов из-за проблемы безопасности. Поэтому, если вы хотите включить CORS, вы должны указать разрешено происхождение (Происхождение, которое разрешено делать запросы с перекрестными происхождениями), Разрешенные методы (HTTP-методы, которые разрешены для перекрестных запросов), и Допускается заголовки (Заголовки HTTP-запроса, которые должны поддерживаться для перекрестных запросов) и т. Д.

Типы запросов CORS

Предварительные запросы

Перед выполнением перекрестных доменных запросов браузеры инициируют «Предварительный» запрос, чтобы определить, разрешены ли эти запросы. Предварительные запросы сделаны Варианты , который является типом HTTP-методов.

Простые запросы

Если запрос соответствует определенным условиям, браузеры не отправляют предварительные запросы.

Простые запросы удовлетворяют этим условиям:

  1. HTTP-метод либо:
    • ПОЛУЧАТЬ
    • ГОЛОВА
    • СООБЩЕНИЕ
  2. Помимо заголовков автоматически устанавливаются пользовательским агентом, единственными заголовками, которые разрешены вручную, являются одним из них:
    • Принимать
    • Язык принимает
    • Содержание языка
    • Тип содержимого
      • Только Приложение/X-www-form-urlencoded , multipart/form-data , Текст/равнина разрешены в качестве значений
  3. Если запрос сделан с использованием XMLHTTPREQUEST Объект, никакие слушатели событий не зарегистрированы на объекте, возвращенном Xmlhttprequest.upload Недвижимость, используемая в запросе
  4. Нет ReadabreStrewream Объект используется в запросе.

Для получения дополнительной информации о CORS, проверьте Этот документ Отказ

Корс руки

Django

Установите модуль CORS: Пип Установить Django-Cors-заголовки

# settings.py
ALLOWED_HOSTS = ['*'] # '*' is a wildcard which allows any host

INSTALLED_APPS = [
    ...
    'corsheaders',
    ...
]

MIDDLEWARE = [
    ...
    'corsheaders.middleware.CorsMiddleware',
    ...
]

# CORS settings
CORS_ORIGIN_ALLOW_ALL=True
CORS_ALLOW_CREDENTIALS = True

CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
)

CORS_ALLOW_HEADERS = (
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
)

Для получения дополнительной информации о Django-Cors-заголовки, проверьте Этот документ Отказ

Fastapi.

# main.py
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()

origins = ["*"]

app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

Для получения дополнительной информации о настройках Fastapi CORS, проверьте Этот документ Отказ

Колбы

Установите расширение COR: PIP Установить -u Flask-Cors

# main.py
from flask-cors import CORS

app = Flask(__name__)

CORS(app)

Для получения дополнительной информации о Flask-Cors, проверьте Этот документ Отказ

Оригинал: “https://dev.to/ninahwang/cors-explained-enable-in-python-projects-1i96”