python
[python-django] post로 데이터 전달 시 csrf 토큰 관련
하이바네
2022. 10. 18. 18:06
반응형
일반적인 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