Рост
CORS («Распределение ресурсов перекрестного происхождения») относится к ситуации, когда домен, запрашивающий ресурс, отличается от домена, обслуживающего этот ресурс. Это часто происходит, когда интерфейс и задний конец находятся в разных происхождениях, и в интерфейсе взаимодействует с задней частью с помощью JavaScript Code.
Источник
«Происхождение» – это комбинация протокола (например. http. , https ), домен (например. somedomain.com , localhost ) и порт (например. 80 , 443 , 3000 , 8000 ).
Поэтому все это разные происхождения.
http://localhosthttp://localhost:8000https://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”