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% 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.
Ü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.
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.
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.
Tags und Links django javascript jquery ajax