2012-10-22 6 views
0

가 나는 CSRF 오류로 실행 빨리 장고와 Jeditable 플러그인을 사용하기 시작하고, "CSRF가 누락 토큰 또는 잘못된"이 글을 쓰는 현재로장고와 JEditable ".. CSRF 검증이 실패 중단 요청": CSRF 오류

Jeditable 플러그인은 2008 년에 마지막으로 업데이트 된 것으로 보입니다. 장고가 POST 요청을 위해 CSRF tokens을 요구하기 시작한 후 언젠가.

Django CSRF 데이터를 Jeditable에 어떻게 추가합니까?

답변

6

이 질문에 대한 대답은 similar jeditable post on CSRF에서 왔습니다. CSRF 토큰은 "submitdata"변수에 추가 될 수 있습니다.

이런 장고 포스트 보이는 무언가에 대한 1st jeditable example 확장 : 전체 양식 필드 대신 "csrf_token"값을 보여주기 위해,

$(document).ready(function() { 
    $('.edit').editable('http://www.example.com/save.php', { 
     submitdata : { csrfmiddlewaretoken : "{{ csrf_token }}"} 
    }); 
}); 

참고 "csrf_token는"에 싸여 {{ ..}} 대신에 {% .. %}.

+1

"{{.. ..}} 대신"{{..}} "에 대한 +1, 그건 몰랐습니다 :) – frnhr

0

AJAX 요청을 통해 CSRF 토큰을 제공하는 기본 방법은 X-CSRFToken 헤더를 CSRF 토큰의 값으로 설정하는 것입니다. 생성 된 요청 객체를 수정하여 헤더 값을 설정해야합니다.

쿠키에서 CSRF 토큰을 얻으려면 제공되는 도우미 함수가 템플릿에 제공되는 것보다 상당히 간단합니다. 예를 들어 JS 코드를 인라인으로 전달하거나 토큰을 설정할 필요가 없습니다 템플릿 자체에서 JS의 변수로 사용됩니다.