2012-05-31 3 views
5

내 응용 프로그램은 응답 헤더를 통해 브라우저에서 캐싱을 사용하지 않도록 설정 한 다음 Post-Redirect-Get 패턴을 사용하여 뒤로 버튼이 현재 페이지를 "다시 가져 오기"할 수있게합니다.
그러나 파이어 폭스 12와 IE 8을 다시 테스트 할 때 기대했던 결과를 보지 못했습니다 (또는 IE 6에서 이전에 보았던 것).Post-Redirect-Get 후 뒤로 버튼 동작

뒤로 버튼을 선택하면 브라우저가 리디렉션 된 요청 (가져 오기)이 아니라 원래 요청 (게시물)을 수행하려고하는 것을 볼 수 있습니다. - 제출 다시

Post-Redirect-Get

브라우저처럼 보이는 뒷면의 버튼입니다 선택 따라서 포스트 치료와 같은 요청으로 얻고있다 : 나는 방화범의 네트워크 탭의 요청을 볼 때 나는 다음을 참조 포스트 : 나는 JSF를 사용하고

Result of Back Button

,하지만 난이 브라우저 문제라고 생각합니다. 누구든지 브라우저가 리디렉션 된 페이지를 얻지 못하는 이유를 알고 있습니까?

답변

4

괜찮습니다. 뒤로 버튼은 "POST accountDetails.xhtml"전에 첫 번째 스크린 샷에 표시되지 않지만 제 2 스크린 샷 (분명히 (논리적으로) "GET accountDetails.xhtml"에 따라)을 다시 실행합니다. 당신은 분명히 그 뷰와 관련된 빈에 있거나 어떤 필터에서 몇 가지 검사를하고 "registrationWelcome.xhtml"로 리다이렉트하고있다. 첫 번째 스크린 샷의 "POST accountDetails.xhtml"은 현재 요청이며 "reviewInfo.xhtml"로 리디렉션되었습니다.

뒤로 단추는 리디렉션을 다시 실행하지 않습니다. 그것을 한 당신의 자신의 코드입니다. 뒤로 버튼은 두 번째 스크린 샷에서 확인 된 POST 요청을 다시 실행하지 않습니다.

+0

감사합니다. BalusC, 올바른 답변입니다. "POST accountDetails.xhtml"앞에 오는 요청은 "accountDetails.xhtml 가져 오기"입니다. 내 이해를 명확히하기 위해 뒤로 버튼은 "POST accountDetails.xhtml -> GET reviewInfo.xhtml"을 동일한 요청 (현재 요청)으로 간주하므로 이전 요청 인 "GET accountDetails.xhtml"이 실행됩니다 뒤로 버튼으로? – Paul

+1

back 버튼은'reviewInfo.xhtml'에서 뒤로 이동 한 다음 페이지 *에서 뒤로 버튼을 누를 때'POST accountDetails.xhtml' 대신'GET reviewInfo.xhtml' 만 다시 실행합니다. 뒤로 버튼은 실제로 현재 요청을 다시 실행하지 않습니다. 새로 고침 버튼은이를 수행합니다. PRG가 없으면 새로 고침 버튼이 POST를 다시 실행합니다. – BalusC

+0

"PRG가 없으면 POST 버튼을 다시 실행했을 것입니다." – Paul