Django CSRF Check Failed with Ajax Post Request
Seperti yang digariskan dalam dokumentasi Django, mendayakan perlindungan CSRF membantu menghalang serangan permintaan merentas tapak yang berniat jahat. Dengan mengikut arahan, anda cuba melaksanakan semakan CSRF dengan siaran Ajax tetapi masih menghadapi penolakan.
Untuk menyelesaikan masalah ini, pertimbangkan langkah berikut:
Sahkan Kewujudan Token:
Pastikan kod JavaScript sedang mengambil token CSRF dan menyimpan dalam pembolehubah yang dipanggil csrftoken. Token ini harus ada sebelum menetapkan pengepala:
$.post("/memorize/", data, function (result) { ... }); var csrftoken = getCookie('csrftoken'); xhr.setRequestHeader("X-CSRFToken", csrftoken);
Kaedah Alternatif (Menggunakan Badan Data):
Daripada menetapkan pengepala, anda boleh membenamkan token CSRF dalam badan data permintaan Ajax sebagai berikut:
$.ajax({ data: { csrfmiddlewaretoken: '{{ csrf_token }}', ... // Other data }, });
Setelah langkah ini selesai, serahkan semula permintaan Ajax untuk melihat sama ada semakan CSRF berjaya.
Atas ialah kandungan terperinci Mengapa Cek Django CSRF Saya Gagal dengan Permintaan POST Ajax?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!