Django Ajax Anmeldeformular

8

Ich versuche, ein Login-Formular mit Ajax einzureichen. Ich bin verwirrt, wie ich mit den Ausnahmen / erfolgreichen Antworten umgehen soll. Ich bekomme 200 OK vom Server und das Formular gibt Fehler entweder durch das Passwort / Benutzername Feld zurück. Wie kann ich eine Fehlermeldung erhalten, um den Benutzer abhängig von der Serverantwort auf die entsprechende Seite anzuzeigen oder umzuleiten?

JQUERY:

%Vor%

ANSICHT: AKTUALISIERT

%Vor%

FORM:

%Vor%     
user1462141 09.12.2012, 02:37
quelle

2 Antworten

8

Obwohl es sicherlich besser ist, dies mit einem json zu tun, können Sie ohne es auskommen, vorausgesetzt, Sie geben nicht wirklich viele Informationen vom Server zurück. Auf der Django-Seite tauschen Sie die HttpResponseRedirect für eine HttpResponse aus, indem Sie die Weiterleitungs-URL als Ihre Nachricht verwenden. Fügen Sie auch HttpResponseForbidden für den Fall hinzu, dass die Ajax-Anmeldung fehlschlägt.

%Vor%

Überprüfen Sie dann auf der Javascriptseite den Statuscode der Antwort. Wenn es 200 ist, dann ist das Ihre HttpResponse - Sie möchten auf die URL in der Antwortnachricht umleiten. Wenn es eine 403 ist, dann ist das deine HttpResponseForbidden - Login ist fehlgeschlagen. Sie können mit einer Standardmeldung "Anmeldung fehlgeschlagen" durchkommen.

%Vor%

Ich fürchte, ich habe das nicht getestet, aber es sollte Ihnen eine Idee geben.

Weitere Informationen finden Sie in der Dokumentation für djangos HttpResponse-Objekte . Dann schau dir die jquery ajax docs an.

    
Aidan Ewen 09.12.2012, 06:39
quelle
1
%Vor%

Sie können natürlich nicht verwenden, wenn Sie Ajax tun, der Client muss verantwortlich für die Umleitung / Anzeige / was auch immer gesendet wird in der Ajax-Antwort. Wenn die Anmeldung erfolgreich ist, senden Sie eine JSON-Antwort, die dem Client mitteilt, dass er sich umleiten soll (mit JavaScript-Umleitung). Wenn dies nicht der Fall ist, senden Sie eine JSON-Antwort mit der Liste der Fehler und zeigen Sie sie mit Javascript an.

    
mpm 09.12.2012 04:07
quelle

Tags und Links