Рост
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-методов.
Простые запросы
Если запрос соответствует определенным условиям, браузеры не отправляют предварительные запросы.
Простые запросы удовлетворяют этим условиям:
- HTTP-метод либо:
ПОЛУЧАТЬ
ГОЛОВА
СООБЩЕНИЕ
- Помимо заголовков автоматически устанавливаются пользовательским агентом, единственными заголовками, которые разрешены вручную, являются одним из них:
Принимать
Язык принимает
Содержание языка
Тип содержимого
- Только
Приложение/X-www-form-urlencoded
,multipart/form-data
,Текст/равнина
разрешены в качестве значений
- Только
- Если запрос сделан с использованием
XMLHTTPREQUEST
Объект, никакие слушатели событий не зарегистрированы на объекте, возвращенномXmlhttprequest.upload
Недвижимость, используемая в запросе - Нет
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”