Sie können den CSRF vermeiden, indem Sie die folgende Annotation vor Ihrer Methodendefinition hinzufügen.
%Vor%Kopieren Sie einfach diesen Code aus den offiziellen Dokumenten in eine js-Datei und fügen Sie sie ein es in Ihrem HTML
%Vor% Siehe HTTP / 1.1-Statuscodedefinitionen . "403" ist der Statuscode "Verboten". Dies ist ein Fehler, der auf der Server-Seite Ihrer $.ajax
-Anfrage ausgelöst wird, nicht auf der Client-Seite (d. H. Ihr Code stellt eine Anfrage, aber die Antwort vom Server ist eine Fehlermeldung).
Das Dokument gibt an, dass Server nur in bestimmten Situationen mit diesem Fehler reagieren sollten:
Der Server hat die Anfrage verstanden, weigert sich aber, sie zu erfüllen. Die Autorisierung wird nicht helfen und die Anfrage sollte nicht wiederholt werden. Wenn die Anfrage-Methode nicht HEAD war und der Server öffentlich machen wollte, warum die Anfrage nicht erfüllt wurde, SOLLTE der Grund für die Ablehnung in der Entität beschrieben werden. Wenn der Server diese Informationen dem Client nicht zur Verfügung stellen möchte, kann stattdessen der Statuscode 404 (Not Found) verwendet werden.
In der Regel bedeutet ein Fehler dieser Art, dass jeder Benutzer, bei dem Sie angemeldet sind, keinen Zugriff auf die angeforderte URL hat. Häufig weist dies darauf hin, dass der einzige Fehler in Ihrem Code die URL ist, an die Sie die Anforderung stellen, oder die Reihenfolge einer Folge von Aufrufen (z. B. wenn Sie versuchen, Daten anzufordern, bevor Sie sich anmelden). Weniger häufig sind einige Webserver und Webanwendungen so konfiguriert, dass sie 403 Fehlercodes anstelle von 404 (nicht gefunden) Fehlercodes für alle "ungültigen" Anfragen beantworten, um zu verhindern, dass Informationen darüber verloren gehen, welche Dateien auf dem Server existieren / p>
Ich stieß darauf und dachte, ich würde posten, was vor sich geht. Ich hatte das {% CSRF_TOKEN %}
in einem gecachten paged und es war caching, was es dort setzte. Also für einige Benutzer war es gültig und einige waren nicht abhängig vom Cache! Es war ein Alptraum, den man aufspüren musste, obwohl es offensichtlich gewesen sein sollte ... Also schau mal, wie du speicherst.
Kann auch prüfen, ob die csrf-Middleware in settings.py aktiviert ist und sie deaktivieren. Suchen Sie nach 'django.middleware.csrf.CsrfViewMiddleware'
.