2017-08-23 48 views
14

Gdy przeglądarka otrzymuje żądanie przekierowania z serwera, przez ułamek sekundy przeglądarka wyświetla stronę błędu z napisem "Nie znaleziono strony", a następnie przekierowuje do odpowiedniego adresu URL.Pokaż stronę zastępczą, gdy przeglądarka otrzymuje 302 żądanie

Szukam rozwiązania, w którym przeglądarka, zamiast wyświetlać stronę "Nie znaleziono strony", wyświetla fałszywą stronę.

Zakładam, że właśnie to robią bramki płatności, wyświetlając stronę z napisem "Nie naciskaj przycisku wstecz/odświeżania".

Odpowiedz

4

Wierzę, że Twoje wstępne założenie, że kiedy przeglądarka otrzymuje kod odpowiedzi 302, pokazuje błąd, może być niepoprawne.

Możesz zobaczyć przekierowania na wielu stronach internetowych, w których działa cała przeglądarka, wystarczy zmienić adres w pasku adresu i wczytać ewentualną stronę, bez wyświetlania czegokolwiek w międzyczasie.

Co więcej, kod stanu HTTP 302 nie jest przeznaczony do posiadania części ciała, a jeśli jest taki, to zazwyczaj jest ignorowany. Mogę więc myśleć tylko o dwóch rzeczach:

  1. Używasz przeglądarki, która ma inne zachowanie po zaakceptowaniu kodu 302 (starszy?).
  2. Serwer nie wysyła wiadomości 302, a tak naprawdę odsyła stronę z kodem przekierowania.

Dobrym sposobem na sprawdzenie tego zależy jakiej przeglądarki używasz, ale większość nowoczesnych przeglądarek mają „wykonawca” okienko, gdzie można zobaczyć wychodzące i przychodzące żądania odpowiedzi i ich nagłówki i kody stanu. Następnie możesz sprawdzić, co się naprawdę dzieje.

Jeśli sprawa jest pierwsza, to obawiam się, że prawdopodobnie niewiele można z tym zrobić bez zmiany samej przeglądarki. Jeśli jest to drugie, zakładając, że kod serwera jest pod twoją kontrolą, możesz zmienić zawartość, która zostanie zwrócona.

1

Zakładam to co Bramki płatności robią wyświetlając stronę z napisem „Nie naciskaj przycisk Wstecz/odświeżania”

W tym celu można użyć meta tag odświeżania/przekierować. Poniższy fragment pochodzi z this SO post

<meta http-equiv="refresh" content="3;url=http://www.google.com/" /> 
1

Możesz dodać Custom error page

Aby odwzorować 302 do statycznego pliku HTML, trzeba utworzyć plik HTML o nazwie 302.html pod zasobami/public/błędu, Twoja struktura folderów powinna wyglądać następująco:

src/ 
+- main/ 
    +- java/ 
    | 
    +- resources/ 
     +- public/ 
      +- error/ 
       +- 302.html 
1

Jeśli używasz sprężyna (jako znacznik wskazuje) można mieć klasę do obsługi przekierowywania, który przekierowuje bezpośrednio do strony pragnienie.

Istnieje wiele różnych sposobów, aby obsłużyć przekierowania, tutaj masz dobry przewodnik: http://www.baeldung.com/spring-redirect-and-forward