Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Semakan CSRF Django Saya Gagal dengan Permintaan AJAX POST?

Mengapa Semakan CSRF Django Saya Gagal dengan Permintaan AJAX POST?

DDD
Lepaskan: 2024-12-07 10:15:12
asal
168 orang telah melayarinya

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

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 }}'
    },
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan