Google Chrome создает элемент истории при перенаправлении? - PullRequest
5 голосов
/ 10 марта 2012

Когда я выполнял перенаправление после отправки формы, которое возвращает вас на страницу, на которой вы находитесь, мой опыт всегда заключался в том, что нажатие на кнопку вашего браузера приведет вас к странице, на которой вы были до страницы, перед отправкой формы.

Например, вы вводите сайт и:

1. (click) GET /home
2. (click) GET /user/view
3. (click) POST /user/save_changes
4. (redirect) GET /user/view

Поведение в Firefox состоит в том, что после отправки формы и перенаправления (# 4), нажав «назад», вы попадете в # 1 (GET / home) из # 4. Но в Chrome нажатие назад после перенаправления приведет вас к # 2 (GET /user/view).

Я не помню, чтобы это было поведением в прошлом ... и, похоже, это происходит только в Chrome. Это происходит как с перенаправлениями 301, так и 302.

Есть ли способ избежать этого поведения? Я всегда делал это таким образом, потому что поведение всегда было приемлемым (восходит к # 1 при нажатии после отправки формы). Я сделал это, чтобы никто не щелкнул назад и не получил ужасное сообщение «Вы хотите повторно отправить форму».

1 Ответ

0 голосов
/ 22 октября 2012

HTML5 предоставляет классную опцию для управления поведением браузера - HTML5 history API. Угадайте, вместо того, чтобы зависеть от браузера, который обрабатывает сам по себе, всегда лучше указать браузеру, как с ним обращаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...