> 백엔드 개발 > PHP 튜토리얼 > PRG(게시/리디렉션/가져오기)가 페이지 새로 고침 시 원치 않는 양식 다시 제출을 방지하려면 어떻게 해야 합니까?

PRG(게시/리디렉션/가져오기)가 페이지 새로 고침 시 원치 않는 양식 다시 제출을 방지하려면 어떻게 해야 합니까?

Patricia Arquette
풀어 주다: 2024-12-27 09:22:10
원래의
444명이 탐색했습니다.

How Can Post/Redirect/Get (PRG) Prevent Unwanted Form Resubmissions on Page Refresh?

Post/Redirect/Get을 사용하여 페이지 새로 고침 시 양식 다시 제출 방지

페이지를 새로 고치면 의도하지 않은 양식 다시 제출이 발생하는 상황에서는, PRG(Post/Redirect/Get) 패턴은 효과적인 솔루션을 제공합니다. 구현을 자세히 살펴보겠습니다.

양식이 제출된 후 서버는 다음 단계를 실행합니다.

  1. 게시: 브라우저는 양식 데이터를 server.
  2. 리디렉션: 서버가 데이터를 처리하고 다른 서버로 리디렉션을 발행합니다. 페이지.
  3. 가져오기: 브라우저가 새 페이지를 가져와 양식 데이터를 효과적으로 지웁니다.

양식 제출 후 사용자를 리디렉션함으로써 브라우저의 암시적 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿