>백엔드 개발 >파이썬 튜토리얼 >AJAX POST 요청으로 인해 Django CSRF 검사가 실패하는 이유는 무엇입니까?

AJAX POST 요청으로 인해 Django CSRF 검사가 실패하는 이유는 무엇입니까?

DDD
DDD원래의
2024-12-07 10:15:12176검색

Why is My Django CSRF Check Failing with AJAX POST Requests?

Django CSRF 확인이 Ajax POST 요청으로 실패함

배경:
Django는 교차 사이트 요청을 사용합니다. 악성 웹사이트가 양식을 제출하거나 작업을 실행하는 것을 방지하는 위조(CSRF) 보호 메커니즘 사용자를 대신합니다. 그러나 이로 인해 AJAX POST 요청을 할 때 문제가 발생할 수 있습니다.

해결책:

Django의 CSRF를 전달하려면 AJAX POST 요청의 데이터 본문에 CSRF 토큰이 포함되어야 합니다. 확인하다. $.ajax 함수를 사용하면 csrfmiddlewaretoken 키-값 쌍을 데이터 객체에 추가하기만 하면 됩니다.

$.ajax({
    data: {
        somedata: 'somedata',
        moredata: 'moredata',
        csrfmiddlewaretoken: '{{ csrf_token }}'
    },

Django 템플릿 언어는 특수 변수 {{ csrf_token }}를 지원합니다. CSRF 토큰을 검색하여 JavaScript 코드에 삽입합니다. 이 토큰은 요청이 예상 소스에서 발생하는지 확인하고 CSRF 공격을 방지하는 데 사용됩니다.

csrfmiddlewaretoken을 AJAX POST 요청의 데이터 본문에 통합하면 Django가 요청을 인식하고 수락하도록 보장할 수 있습니다. 데이터를 처리하고 원하는 작업을 수행합니다.

위 내용은 AJAX POST 요청으로 인해 Django CSRF 검사가 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.