Heim > Backend-Entwicklung > Python-Tutorial > Warum schlägt meine Django CSRF-Prüfung bei AJAX POST-Anfragen fehl?

Warum schlägt meine Django CSRF-Prüfung bei AJAX POST-Anfragen fehl?

DDD
Freigeben: 2024-12-07 10:15:12
Original
173 Leute haben es durchsucht

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

Django CSRF-Prüfung schlägt mit Ajax-POST-Anfrage fehl

Hintergrund:
Django verwendet eine Cross-Site-Anfrage Forgery (CSRF)-Schutzmechanismus, um zu verhindern, dass bösartige Websites im Namen eines Benutzers Formulare übermitteln oder Aktionen auslösen. Dies kann jedoch zu Problemen bei AJAX POST-Anfragen führen.

Lösung:

Die AJAX POST-Anfrage muss das CSRF-Token in ihrem Datenkörper enthalten, um Djangos CSRF zu übergeben überprüfen. Mit der Funktion $.ajax kann dies erreicht werden, indem einfach das Schlüssel-Wert-Paar csrfmiddlewaretoken zum Datenobjekt hinzugefügt wird:

$.ajax({
    data: {
        somedata: 'somedata',
        moredata: 'moredata',
        csrfmiddlewaretoken: '{{ csrf_token }}'
    },
Nach dem Login kopieren

Die Django-Vorlagensprache unterstützt eine spezielle Variable, {{ csrf_token }}, die ruft das CSRF-Token ab und fügt es in den JavaScript-Code ein. Dieses Token wird verwendet, um zu überprüfen, ob die Anfrage von der erwarteten Quelle stammt, und um CSRF-Angriffe zu verhindern.

Durch die Einbindung des csrfmiddlewaretoken in den Datenkörper der AJAX POST-Anfrage stellen Sie sicher, dass Django die Anfrage erkennt und akzeptiert es, um die Daten zu verarbeiten und die gewünschte Aktion auszuführen.

Das obige ist der detaillierte Inhalt vonWarum schlägt meine Django CSRF-Prüfung bei AJAX POST-Anfragen fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage