2016-10-25 1 views
0

Docker를 사용하는 3 레이어 장고 프로젝트가 있습니다. 첫 번째 컨테이너는 프런트 엔드이며 모든 렌더링을 수행하고 두 번째 레이어는 프론트 엔드에 표시 할 논리를 처리하고 JSON을 요청하여 데이터베이스 레이어 (세 번째)와 상호 작용하며 세 번째 컨테이너/레이어는 데이터베이스Docker를 사용하여 Django에서 POST 데이터로 urllib 요청을 할 때 금지 된 403 오류를 해결하는 방법은 무엇입니까?

사용자가 등록하려고하는 프런트 엔드에 양식이 있습니다. 그러나 POST를 사용하여 두 번째 레이어로 API 호출을하고 양식 값을 전달할 때 403 Forbidden Error가 계속 발생합니다. 내 양식에 CSRF 토큰을 사용하고 있습니다. 403 Forbidden Error는 어떻게 제거합니까?

프런트 엔드 수준에서 내 views.py에서 일부 코드 :

def signup(request): 
     #more code 
     username = form.cleaned_data["username"] 
     #and some more fields 
     data = {"username": username, "password":password, ... "location": location} 
     postData = urllib.parse.urlencode(data).encode('utf-8') 
     try: 
     req = urllib.request.Request("url to API in 2nd layer", postData) 
     #more code 

장고가 try 문을 실행하려고 시도,하지만 난 403 금단의 오류를 얻고있다.

+0

"귀하의 2 층 API"는 어떤 모양입니까? 그들은 같은 도커 호스트에 있습니까? – levi

+0

그들은 도커 작성을 사용하여 연결됩니다. GET 요청으로 해당 링크에 액세스 할 때 아무런 문제가 없습니다. 하지만 POST 요청으로 403 Forbidden 오류가 발생합니다. – arun8r

답변

0

당신은 여기

MIDDLEWARE_CLASSES = [ 
    ... 
    'corsheaders.middleware.CorsMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    ... 
] 

는 참조

INSTALLED_APPS = (
    ... 
    'corsheaders', 
    ... 
) 

..... ..... CORS이 2 장고 프로젝트

pip install django-cors-headers 

에서 통화가 가능합니다 lib. Django-CORS-Headers

관련 문제