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?


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).


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.