Url im Browser nicht aktualisiert nach Aufruf der Umleitung (url_for ('xxx')) in Flask mit jQuery mobile

8

Ich habe ein sehr einfaches Python-Programm, das den unten gezeigten Flask verwendet. Es handhabt eine Anmeldung mit einem Popup und Logout. Das Problem ist, dass die URL im Browser nicht durch den Umleitungsruf (url_for ()) aktualisiert wird.

%Vor%

Beim Zugriff auf '/' wird die Begrüßungsseite angezeigt. Wenn ich auf die Schaltfläche klicke, wird das Login-Popup angezeigt und die Formularaktion wird auf "/ login" umgeleitet. Das funktioniert und die login () Funktion wird aufgerufen und ausgeführt. Die Umleitung auch, aber der Browser aktualisiert die angezeigte URL nicht.

So wird die Webapp-Seite mit der / logon URL angezeigt. Wenn ich auf Neuladen klicke, erhalte ich einen Fehler, weil es versucht, neu zu laden / sich anzumelden, während es '/' neu laden sollte, wo es umgeleitet wurde.

Das Gleiche passiert mit / logout. Wenn die Webapp-Seite angezeigt wird und ich auf den Logout-Button klicke, wird die / logout-Seite geladen, die die logout () -Funktion ausführt und zum Index weiterleitet. Aber die URL muss sich abmelden.

Wenn ich die Seite neu lade, ist es erfolgreich, weil / logout die GET-Methode akzeptiert und dann die URL auf / so aktualisiert wird, wie sie eigentlich hätte sein sollen.

Ich habe den Eindruck, dass es sich um ein jQuery-Problem handelt, kann aber das Problem nicht herausfinden. Aus Sicht von Python und Flask stimmt es mit allen Login-Beispielen überein, die ich finden kann.

    
chmike 13.12.2012, 20:33
quelle

1 Antwort

9

Schließlich löste es nach dem Schreiben der Frage.

Das Problem wird von jQuery mobile und dem fehlenden Daten-URL-Attribut verursacht.

Durch Hinzufügen des Daten-URL-Attributs in der Seite div wird die URL im Browser aktualisiert und alles funktioniert einwandfrei.

%Vor%     
chmike 13.12.2012 20:45
quelle