2012-10-08 2 views
0

내 Django 템플릿에 POST 양식이 있습니다. {% csrf_token %} 태그가 포함되어 있습니다. 이 양식을 정상적으로 제출하면 모든 것이 잘됩니다. 그러나, 나는 자바 스크립트/jQuery를 통해 폼 입력 값을 변경해야합니다입력 값이 javacript에 의해 변경 될 때 CSRF 확인에 실패했습니다.

$('input').val(id); 

그때 이렇게하면 내가 양식을 제출하면 오류 메시지가 "CSRF 검증 실패"얻는다. Javascript를 통해 양식을 제출하지만 동적으로 값을 변경하지 않는 한 문제가되지 않았습니다.

필자는 파이썬 함수 위에 @csrf_exempt를 작성하여 "해결 중"이었습니다. 그러나 이것은 보안을 건너 뜁니다. 다른 방법이 있습니까?

답변

0

명령 $('input').val(id);은 찾을 수있는 모든 입력 항목을 덮어 쓰므로 숨김 csrf_token 입력 값이 손실됩니다. 더 구체적인 선택자를 만들어보십시오. 예 :

$('input[name=change-me]').val(id); 
+0

예, 작동합니다. – user984003

관련 문제