Post/Redirect/Get을 사용하여 페이지 새로 고침 시 양식 다시 제출 방지
페이지를 새로 고치면 의도하지 않은 양식 다시 제출이 발생하는 상황에서는, PRG(Post/Redirect/Get) 패턴은 효과적인 솔루션을 제공합니다. 구현을 자세히 살펴보겠습니다.
양식이 제출된 후 서버는 다음 단계를 실행합니다.
양식 제출 후 사용자를 리디렉션함으로써 브라우저의 암시적 GET 페이지 새로 고침 요청에는 양식 데이터가 포함되어 있지 않으므로 다시 제출할 수 없습니다.
그러나 다음을 피하는 것이 중요합니다. 이전에 제출한 데이터로 양식을 다시 채울 수 있으므로 뒤로 버튼을 사용합니다. 원활한 사용자 경험을 위해 새 페이지에서 데이터가 성공적으로 제출되었음을 명확하게 표시하는지 확인하세요.
window.history.replaceState를 사용한 Javascript 접근 방식
As 답변에서 언급된 대체 접근 방식은 JavaScript의 window.history.replaceState 메서드를 활용하는 것입니다.
if (window.history.replaceState) { window.history.replaceState(null, null, window.location.href); }
이 스크립트 브라우저의 기록을 변경하여 페이지 새로 고침을 실행하지 않고 현재 항목을 새 항목으로 바꿉니다. 그러나 이 접근 방식은 PRG 패턴만큼 안정적이지 않을 수 있다는 점에 유의하는 것이 중요합니다.
궁극적으로 PRG 패턴은 양식의 원래 URL을 유지하고 사용자 친화적인 경험을 제공합니다.
위 내용은 PRG(게시/리디렉션/가져오기)가 페이지 새로 고침 시 원치 않는 양식 다시 제출을 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!