Django 크로스 필드 요청 처리 예제 코드
javascript 을 사용 하여 ajax 에 접근 할 때 다음 과 같은 오류 가 발생 했 습 니 다.
오류 원인:자바 script 은 안전 고려 에 있 으 며,도 메 인 접근 을 허용 하지 않 습 니 다.다음 그림 은 도 메 인 방문 에 대한 설명 입 니 다.
개념:
여기 서 말 하 는 js 크로스 도 메 인 은 js 나 python 을 통 해 서로 다른 도 메 인 간 에 데이터 전송 이나 통신 을 하 는 것 을 말한다.예 를 들 어 ajax 로 서로 다른 도 메 인 에 데 이 터 를 요청 하거나 js 를 통 해 페이지 의 서로 다른 도 메 인 프레임 워 크(Django)의 데 이 터 를 가 져 오 는 것 을 말한다.프로 토 콜,도 메 인 이름,포트 가 다 르 면 서로 다른 도 메 인 으로 여 겨 집 니 다.
해결 방법
1.views.py 파일 수정
views.py 에 대응 하 는 API 구현 함 수 를 수정 하여 다른 도 메 인 이 Ajax 를 통 해 데 이 터 를 요청 할 수 있 도록 합 니 다.
todo_list = [
{"id": "1", "content": " "},
{"id": "2", "content": " "},
]
class Query(View):
@staticmethod
def get(request):
response = JsonResponse(todo_list, safe=False)
response["Access-Control-Allow-Origin"] = "*"
response["Access-Control-Allow-Methods"] = "POST, GET, OPTIONS"
response["Access-Control-Max-Age"] = "1000"
response["Access-Control-Allow-Headers"] = "*"
return response
@staticmethod
def post(request):
print(request.POST)
return HttpResponse()
2.미들웨어 django-cors-headers 추가GitHub 주소:https://github.com/ottoyiu/django-cors-headers
2.1.설치 pip install django-cors-headers
2。2 앱 추가
INSTALLED_APPS = (
...
'corsheaders',
...
)
2.3 미들웨어 추가
MIDDLEWARE = [ # Or MIDDLEWARE_CLASSES on Django < 1.10
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
2.4 크로스 오 버 사이트 가 본 사이트 에 접근 할 수 있 는 주 소 를 설정 합 니 다.
CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = (
'localhost:63343',
)
# :
CORS_ORIGIN_WHITELIST = () # .
CORS_ORIGIN_REGEX_WHITELIST = ('^(https?://)?(\w+.)?>google.com$', ) # :
CORS_ORIGIN_REGEX_WHITELIST = ()
2.5 접근 허용 방법 설정
CORS_ALLOW_METHODS = (
'GET',
'POST',
'PUT',
'PATCH',
'DELETE',
'OPTIONS'
)
2.6 허 용 된 header 설정:기본 값:
CORS_ALLOW_HEADERS = (
'x-requested-with',
'content-type',
'accept',
'origin',
'authorization',
'x-csrftoken'
)
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.