Wyłącz monit „Potwierdź ponowne przesłanie formularza” w Google Chrome

19

Chciałbym wyłączyć wyskakujące okienka „Potwierdź ponowne przesłanie formularza” w Google Chrome podczas odświeżania. Ta (bardzo) stara dyskusja uznaje problem, ale nie zapewnia rozwiązania.

Czy jest ktoś z lepszym pomysłem?

Randomblue
źródło
5
Pobierz kod źródłowy Chrome i zhakuj własną wersję ze wszystkimi funkcjami, które robisz i których nie chcesz.
Moab
Jak powiedział JSZ w wątku dyskusyjnym, do którego prowadził Justin, do witryny należy obsługa ponownych odwiedzin (takich jak wyszukiwania), a nie przeglądarka (niemożliwie) odgadnąć, co jest poprawnym / bezpiecznym automatycznym ponownym przesłaniem.
Synetech
z RFC 2616: „Pozwala to agentom użytkownika na reprezentowanie innych metod, takich jak POST, PUT i DELETE, w specjalny sposób, dzięki czemu użytkownik jest informowany o tym, że żądane jest potencjalnie niebezpieczne działanie.”
hakre
@Moab Dlaczego tak poważnie? : p
delphirules

Odpowiedzi:

15

Chrome wprowadził tę „funkcję”, aby uniknąć przypadkowego powielania działań POST w formularzach, takich jak dwukrotne kupowanie tego samego artykułu.

Najwyraźniej zostało to naprawione jakiś czas temu przy użyciu -disable-prompt-on-repostparametru w wywołaniu Chrome, ale zostało to również zepsute w późniejszych wersjach.

Pomimo wielu powiązanych raportów o błędach Chrome, które pozostawały otwarte przez lata (!), Błąd nadal występuje. Najwyraźniej moduł Chrome, który wykonuje przewijanie do tyłu / do przodu, jest napisany tak źle, że naprawienie go jest prawie niemożliwe. I nikt nie odważy się przepisać go od zera.

Dlatego jeśli nie możesz zmodyfikować strony zawierającej operację POST, oznacza to, że nie masz szczęścia i nie ma rozwiązania.

Jeśli możesz zmodyfikować stronę, masz dwa rozwiązania:

  1. Użyj GET zamiast POST
  2. Użyj metody Post / Redirect / Get z kodem odpowiedzi HTTP 303

Istnieje oczywiście rozwiązanie polegające na użyciu innej przeglądarki niż Chrome (ale to nie odpowiada na pytanie).

harrymc
źródło
Dzięki. Czy możesz podać link do niektórych z tych raportów o błędach?
Randomblue,
1
Wystarczy użyć tego zapytania Google, które daje ponad 8000 odpowiedzi.
harrymc
2
Technicznie rzecz biorąc, Chrome nie wprowadził tej funkcji, jest obecny w prawie wszystkich przeglądarkach internetowych od co najmniej 15 lat .
Synetech
Opera na szczęście nie ma tego mylnego charakteru.
cweiske