본문 바로가기
python

[python-django] post로 데이터 전달 시 csrf 토큰 관련

by 하이바네 2022. 10. 18.
반응형

일반적인 form에서 데이터를 보낼떄는 {% csrf_token %}으로 값을 넣으면 된다.

 

그러면 fetch나, ajax를 활용해서 비동기 처리를 할 경우에는 body에 그대로 넣으려 했는데 동작하지 않았다.

 

header에 다음과 같이 추가를 해야한다.

 

        fetch("/board/question/vote/",{
            method:"POST",
            headers:{
                "Content-Type": "application/json",
                "X-CSRFToken": '{{csrf_token}}'
            },
            body:JSON.stringify({
                vote:'G',
            }),
        })
        .then((response) => response.json())
        .then((data) => {
            //1. 이미 투표를 한 경우
            //2. 처리를 한 경우
            console.log(data)
        })
        .catch((error) => console.log("error:", error));

 

연습용으로 이것저것 하던 코드인데, X-CSRFToken이 들어간 부분만 보면 된다.

728x90

댓글