2013-10-12 2 views
0

이 질문은 매우 슬프지만 실제로 게시하기 전에 모든 것을 시도했습니다. 그래서 모든 질문에 답이 없습니다.JSON을 보낼 때 Django CSRF 쿠키가 설정되지 않았습니다

@csrf_protect 
def login_view(request): 
    if request.method == "GET": 
     return HttpResponse(json.dumps(
        {'username':request.user.username} 
       ), mimetype='application/json') 

장고이 뷰를 제공 할 때 응답에 Set-Cookie 헤더를 추가해야하지만 그렇지 않은 : 같은

내 코드 간다. 이보기에서 응답을 얻은 후 csrftoken 쿠키가 없으며 헤더에 없습니다. CSRFMiddleware이 (가) 켜져 있고 사이트의 다른 부분에서 작동합니다. 장고에게 쿠키를 설정하려면 어떻게해야합니까?

제발, 도와주세요!

답변

0

장고는 json 데이터를 반환 할 때 응답 헤더에 쿠키 값을 설정하지 않으므로 수동으로 응답 개체에 쿠키 값을 설정해야합니다. 다음과 같은 코드 :

@csrf_protect 
def login_view(request): 
    if request.method == "GET": 
     response = HttpResponse(json.dumps(
        {'username':request.user.username} 
       ), mimetype='application/json') 

     response.set_cookie('hello','world') 
     return response 
+0

왜 내 편집을 승인하지 않으셨습니까? 이 질문에 대한 답을 보여줍니다.이 대답에 포함되지 않은 정보입니다. – martinthenext

+1

@martinthenext 어제 거부 됨 : CuberChase가 어제를 검토했습니다. 거부 : 이 편집이 잘못되었거나 기존 게시물. michaelb958이 어제를 검토 함 : 거부 이 수정이 잘못되었거나 기존 게시물에 답장을 보내거나 의견을 남기려는 시도입니다. dmahapatro 어제 리뷰 : 자바 데빌이 어제를 검토했습니다. 거부 : 이 편집이 잘못되었거나 기존 게시물에 답글을 달거나 댓글을다는 시도입니다. – Yohn

관련 문제