Hallo,
Ich habe ein Problem mit dem "POST-Redirect-GET"-Pattern in Webkit-Browsern, genauer gesagt mit dem Zurück-Button.
Bei meiner Website verfahre ich bei Formularen momentan folgendermaßen:
1. GET example.com/user -> Klick auf "login"-Button
2. GET example.com/user/login -> leeres Formular wird angezeigt und fehlerhaft ausgefüllt und abgeschickt
beliebig oft wiederholbar:
3. POST example.com/user -> 302
4. GET example.com/user/login -> Formular wird angezeigt mit Fehlermeldung
Wenn ich im Firefox, Opera oder IE8 den Zurück-Button klicke, lande ich wieder auf Seite 1, so als wären alle Formularseiten als eine einzelne Seite behandelt wurden. Damit kann ich leben :)
In Chrome oder Safari passiert aber folgendes:
Jeder Aufruf von "GET example.com/user/login" wird im Verlauf vermerkt, wenn ich das Formular also 3 mal abgesendet habe muss ich 4 mal zurück klicken, um wieder auf Seite 1 zu kommen, allerdings werden davor nicht die Formulare angezeigt, die ich abgeschickt habe, sondern immer der Zustand nach dem letzten absenden - inkl. Fehlermeldungen, die beim ersten Aufruf da ja nichts zu suchen haben...
Seltsamerweise funktioniert das Ganze in Webkit, sobald ich kein 302 mache und beim POST das Formular direkt anzeige, bei anderen Browsern bekomme ich da aber die bekannte "Formular erneut absenden"-Warnung...
Kann man da irgendwas machen, damit sich Webkit wie die anderen Browser verhält oder muss ich das ganze POST-Redirect-GET verfahren überdenken?