"location.reload ()" verliert POST / SESSION-Daten? (F5 / Strg + R hält Daten?)

8

Ich möchte eine Schaltfläche erstellen, um eine Seite neu zu laden, ohne $_POST data und $_SESSION zu verlieren.
Im Internet habe ich diesen Code gefunden:

%Vor%

Und hier ist der Code meines Knopfes:

%Vor%

Aber wenn ich auf die Schaltfläche klicke, verliere ich $_POST data und $_SESSION .

Wenn ich es mit dem Tastaturbefehl Strg + R (Chrome) oder F5 (Firefox, IE9) versuche, zeigt der Browser eine Warnung an, dass ich ' Ich versuche erneut, die Form vorzulegen. Wenn ich akzeptiere, funktioniert es.

Wie kann ich diese Art der Browser-Aktualisierung mit einem JavaScript-Befehl reproduzieren? Oder ist der Code meiner Schaltfläche falsch?

Vielen Dank für Ihre Hilfe.

    
Zorkzyd 02.06.2012, 09:22
quelle

3 Antworten

9

Versuchen Sie es mit

%Vor%

Dadurch wird eine "harte" Aktualisierung durchgeführt, wobei nicht nur das DOM neu erstellt wird, sondern auch alle Ressourcen vom Server abgerufen werden.

Sie können mehr im Mozilla Developer-Wiki lesen.

Anscheinend ist location.reload() das Äquivalent von F5 beim Scripting, während Ctrl+F5 / Ctrl+R mit location.reload(true) simuliert werden kann.

Wie ThiefMaster bereits erwähnt hat, fehlt am Ende Ihrer ;return false -Anweisung onclick , oder Sie sollten href auf javascript:void 0 * setzen, um den Browser zu verhindern vom Folgen des Links.

* Oder ein anderes Stück JavaScript, das undefined

zurückgibt     
user2428118 02.06.2012 09:29
quelle
2

Dies sollte in jedem Fall passieren, solange Sie sich an dem Ort befinden, an dem Sie POSTIERT haben. Es ist jedoch üblich, nach einer POST-Anforderung umzuleiten, um genau das zu vermeiden, was Sie versuchen zu tun.

Der Grund, warum Ihr Code nicht funktioniert, ist die Tatsache, dass href="" eine GET-Anfrage an die aktuelle URL auslöst. Verwenden Sie href="#" , um zu verhindern, dass eine "neue" Seite geladen wird, oder fügen Sie return false; am Ende Ihres onclick="..." codes hinzu.

    
ThiefMaster 02.06.2012 09:24
quelle
0

Das Ctrl + R aktualisiert die Seite und löscht den Cache. Und ich nehme an, Sie verwenden den Internet Explorer? Einige andere Browser verhalten sich wie folgt, wenn Sie Ctrl + F5 , nicht jedoch Ctrl + R

drücken

Quellen:
Ссылка
Browserproblem in Ctrl-R

    
Tschareck 02.06.2012 09:28
quelle