Показывать страницу-заполнитель, когда браузер получает запрос 302
Когда браузер получает запрос переадресации с сервера, на долю секунды браузер показывает страницу с ошибкой, в которой говорится "Страница не найдена", а затем перенаправляется на соответствующий URL-адрес.
Я ищу решение, в котором браузер, вместо отображения страницы "Страница не найден", показывает фиктивную страницу.
Я предполагаю, что это то, что делают платежные шлюзы, отображая страницу с надписью "Не нажимать кнопку" Назад/Обновить ".
Ответы
Ответ 1
Я считаю, что ваша первоначальная предпосылка о том, что когда браузер получает код ответа 302, он показывает ошибку, может быть неправильным.
Вы можете видеть, что перенаправления происходят на многих веб-сайтах, где все браузеры просто меняют адрес в адресной строке и загружают конечную страницу, не отображая ничего в среднем.
Кроме того, код статуса HTTP 302 не предназначен для части тела, а если он есть, он обычно игнорируется. Итак, я могу думать только о двух вещах, которые могут произойти:
- Вы используете какой-либо браузер, который имеет другое поведение при принятии кода 302 (старше?).
- Сервер не отправляет 302 и фактически отправляет обратно страницу с кодом перенаправления.
Хороший способ проверить это зависит от того, какой браузер вы используете, но в большинстве современных браузеров есть панель разработчика, где вы можете видеть исходящие запросы и входящие ответы, а также их заголовки и коды состояния. Затем вы можете проверить, что на самом деле происходит.
Если дело первое, то я боюсь, что, возможно, вы не можете сделать этого, не изменяя сам браузер. Если это последний, то при условии, что код сервера находится под вашим контролем, вы можете изменить любой контент, который будет возвращен.
Ответ 2
Я предполагаю, что это то, что делают платежные шлюзы, отображая страницу с надписью "Не нажимать кнопку" Назад/Обновить "
Для этого вы можете использовать тег meta
для обновления/перенаправления. Следующий фрагмент взят из этого сообщения SO
<meta http-equiv="refresh" content="3;url=http://www.google.com/" />
Ответ 3
Вы можете добавить Страница пользовательской ошибки
Чтобы сопоставить 302 с статическим HTML файлом, вам нужно создать html файл с именем 302.html в разделе resources/public/error, структура вашей папки должна выглядеть так:
src/
+- main/
+- java/
|
+- resources/
+- public/
+- error/
+- 302.html
Ответ 4
Если вы используете Spring (как подсказывает тег), вы можете иметь класс для обработки перенаправления, который перенаправляет вас сразу на желаемую страницу.
Существует несколько способов управления перенаправлением, здесь у вас есть хорошее руководство:
http://www.baeldung.com/spring-redirect-and-forward