Django CSRF Check Gagal dengan Ajax POST Request
Latar Belakang:
Django menggunakan Permintaan Merentas Tapak Mekanisme perlindungan pemalsuan (CSRF) untuk menghalang laman web berniat jahat daripada menyerahkan borang atau mencetuskan tindakan ke atas bagi pihak pengguna. Walau bagaimanapun, ini boleh membawa kepada isu semasa membuat permintaan AJAX POST.
Penyelesaian:
Permintaan AJAX POST mesti memasukkan token CSRF dalam badan datanya untuk lulus CSRF Django semak. Menggunakan fungsi $.ajax, ini boleh dicapai dengan hanya menambahkan pasangan nilai kunci csrfmiddlewaretoken pada objek data:
$.ajax({ data: { somedata: 'somedata', moredata: 'moredata', csrfmiddlewaretoken: '{{ csrf_token }}' },
Bahasa templat Django menyokong pembolehubah khas, {{ csrf_token }}, yang mendapatkan semula dan memasukkan token CSRF ke dalam kod JavaScript. Token ini digunakan untuk mengesahkan bahawa permintaan berasal daripada sumber yang dijangkakan dan menghalang serangan CSRF.
Dengan memasukkan csrfmiddlewaretoken ke dalam badan data permintaan AJAX POST, anda memastikan Django mengenali dan menerima permintaan tersebut, membenarkan untuk memproses data dan melakukan tindakan yang diingini.
Atas ialah kandungan terperinci Mengapa Semakan CSRF Django Saya Gagal dengan Permintaan AJAX POST?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!