Heim >Backend-Entwicklung >Python-Tutorial >Warum schlägt meine Django-CSRF-Prüfung mit einer Ajax-POST-Anfrage fehl?
Django CSRF-Prüfung schlägt mit Ajax-Post-Request fehl
Wie in der Dokumentation von Django beschrieben, trägt die Aktivierung des CSRF-Schutzes dazu bei, böswillige Cross-Site-Request-Angriffe zu verhindern. Durch Befolgen der Anweisungen haben Sie versucht, die CSRF-Prüfung mit Ajax-Posting zu implementieren, stoßen aber immer noch auf eine Ablehnung.
Um dieses Problem zu beheben, beachten Sie die folgenden Schritte:
Token-Existenz überprüfen:
Stellen Sie sicher, dass der JavaScript-Code das CSRF-Token abruft und es in einer Variablen namens speichert csrftoken. Dieses Token sollte vorhanden sein, bevor der Header festgelegt wird:
$.post("/memorize/", data, function (result) { ... }); var csrftoken = getCookie('csrftoken'); xhr.setRequestHeader("X-CSRFToken", csrftoken);
Alternative Methode (unter Verwendung des Datenkörpers):
Anstatt den Header festzulegen, können Sie ihn einbetten das CSRF-Token im Datenkörper der Ajax-Anfrage als folgt:
$.ajax({ data: { csrfmiddlewaretoken: '{{ csrf_token }}', ... // Other data }, });
Sobald diese Schritte abgeschlossen sind, senden Sie die Ajax-Anfrage erneut, um zu sehen, ob die CSRF-Prüfung erfolgreich verläuft.
Das obige ist der detaillierte Inhalt vonWarum schlägt meine Django-CSRF-Prüfung mit einer Ajax-POST-Anfrage fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!