반응형
[Python & Django] javascript로 ajax 통신시 csrf token 에러 해결하는 방법 !!
장고템플릿을 사용하면 이런식으로 사용이 가능한데, 프론트에서 javascript로 ajax통신을 하려고 하면 에러가 난다.
{% csrf_token %}
아래 예제코드 처럼 토큰을 생성해서 같이 보내주면 해결 됩니다 :)
예제코드
//csrf token
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie !== '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i].trim();
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) === (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
var csrftoken = getCookie('csrftoken');
function saveBtn() {
$.ajax({
type: 'POST',
url: url,
data: data,
dataType: 'json',
headers: {
'X-CSRFToken': csrftoken // 여기에 생성한 토큰을 넣어주면 된다
},
success: function (response) {
console.log("성공",response);
},
error: function (response) {
console.log("실패",response);
alert('에러가 발생했습니다.');
}
});
}
728x90
반응형
댓글