Ajax, CSRF und DELETE

8

Ich verwende die getCookie -Funktion aus der django -Dokumentation Erhalte den csrfmiddlewaretoken -Wert.

Ich habe den folgenden Ajax-Aufruf:

%Vor%

Wenn dieser Code ausgeführt wird, löst django eine 403 Exception aus, die mir mitteilt, dass die CSRF-Überprüfung fehlgeschlagen ist. Wenn ich jedoch die type von DELETE zu POST ändere, dann freut sich django darüber und beschwert sich überhaupt nicht.

Ich konnte nicht wirklich etwas Nützliches in Google finden, aber ich habe dieses (jetzt geschlossene und feste) Ticket gefunden: Ссылка

Wenn ich es richtig verstehe, dann wurde dieses Problem im 1.4-Meilenstein behoben. Ich benutze Django 1.4, aber ich kann das CSRF Token mit einer DELETE Anfrage nicht überprüfen.

Fehle ich hier etwas?

    
Pablo 26.10.2012, 15:13
quelle

1 Antwort

20

Dies scheint ein jQuery-Fehler zu sein, der durch einige Verwirrung darüber verursacht wurde, ob DELETE-Daten an die URL (wie eine GET-Anfrage) oder an den Anfragetext (wie ein POST) angehängt werden sollten

Siehe diesen Fehlerbericht .

Sie können dies wahrscheinlich umgehen, indem Sie die alternative CSRF-Methode für AJAX-Aufrufe verwenden, indem Sie einen X-CSRFToken -Header für die Anforderung festlegen. Versuchen Sie, Ihren AJAX-Anruf wie folgt zu ändern:

%Vor%     
Ian Clelland 26.10.2012, 15:38
quelle

Tags und Links