본문 바로가기
Coding/Python

[Python & Django] javascript로 ajax 통신시 csrf token 에러 해결하는 방법 !!

by 포스트it 2023. 7. 14.
반응형

 

[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
반응형

댓글