CORS 설명 + Python 프로젝트에서 활성화
CORS
CORS("Cross-Origin Resource Sharing")는 리소스를 요청하는 도메인이 해당 리소스를 제공하는 도메인과 다른 경우를 나타냅니다. 이는 프론트엔드와 백엔드가 서로 다른 출처에 있고 프론트엔드가 JavaScript 코드를 사용하여 백엔드와 통신할 때 자주 발생합니다.
기원
"Origin"은 프로토콜(예:
http
, https
), 도메인(예: somedomain.com
, localhost
) 및 포트(예: 80
, (79914), 443
, 3000
,41)의 조합입니다. ).그러므로 이 모든 것들은 서로 다른 기원입니다.
8000
http://localhost
http://localhost:8000
CORS 허용
브라우저는 보안 문제로 인해 스크립트에서 시작된 교차 출처 HTTP 요청을 제한합니다. 따라서 CORS를 활성화하려면 허용된 출처(교차 출처 요청을 허용하는 출처), 허용된 메소드(교차 출처 요청이 허용되는 HTTP 메소드) 및 허용된 헤더(다음을 수행하는 HTTP 요청 헤더)를 지정해야 합니다. 교차 출처 요청에 대해 지원되어야 함) 등
CORS 요청 유형
실행 전 요청
도메인 간 요청을 수행하기 전에 브라우저는 해당 요청이 허용되는지 여부를 결정하기 위해 "프리플라이트"요청을 시작합니다. 비행 전 요청은 HTTP 메소드의 한 유형인
https://localhost
에 의해 수행됩니다.단순 요청
요청이 특정 조건을 충족하는 경우 브라우저는 실행 전 요청을 보내지 않습니다.
단순 요청은 다음 조건을 충족합니다.
OPTIONS
GET
HEAD
POST
Accept
Accept-Language
Content-Language
Content-Type
, application/x-www-form-urlencoded
, multipart/form-data
만 값으로 허용됩니다 text/plain
객체를 사용하여 요청한 경우 요청에 사용된 XMLHttpRequest
속성에서 반환된 객체에 이벤트 리스너가 등록되지 않음XMLHttpRequest.upload
개체가 사용되지 않습니다. CORS에 대한 자세한 내용은 this document 을 확인하십시오.
CORS 실습
장고
CORS 모듈 설치:
ReadableStream
# 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-headers에 대한 자세한 내용은 this document 을 확인하십시오.
빠른 API
# 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 설정에 대한 자세한 내용은 this document 을 확인하십시오.
플라스크
CORS 확장 설치:
pip install django-cors-headers
# main.py
from flask-cors import CORS
app = Flask(__name__)
CORS(app)
flask-cors에 대한 자세한 내용은 this document 을 확인하십시오.
Reference
이 문제에 관하여(CORS 설명 + Python 프로젝트에서 활성화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ninahwang/cors-explained-enable-in-python-projects-1i96텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)