새로 고침시 양식을 명시 적으로 다시 보내지 않으려면 어떻게합니까?


1

양식이 제출 된 후 페이지를 다시로드 / 새로 고치려고하면이 팝업이 나타납니다.

여기에 이미지 설명을 입력하십시오

그러나 계속 또는 취소의 두 가지 옵션 만 있습니다. 내가하고 싶은 경우 다시로드,하지만 양식을 다시 제출하지?

답변:


1

글쎄, 당신은 정말로 할 수 없습니다. 이것은 모두 사이트 코딩 방식을 기반으로합니다. 할 수 있더라도 세션을 중단시킬 수 있습니다.

때로는 브라우저 주소 표시 줄에 커서를 놓고 Enter 키를 누르십시오. 사이트가 제대로 코딩 된 경우 일반적으로 다른 페이지로 리디렉션되고 그렇지 않은 경우 서버와의 세션이 불안정한 상태가됩니다. 실제로 당신이 원하는 상황은 아닙니다.

브라우저가 GET 대신 POST를 보내므로 메시지가 표시됩니다.

기본적으로 브라우저는 서버로 전송 된 마지막 명령의 상태를 다시 보냅니다.이 경우 POST는 결과이며 문서는 결과입니다. 새로 고침하려는 바로 그 문서.

이는 여러 페이지가 여러 단계 제출 ( "마법사")로 연결될 때 일반적입니다. 2 단계에서 입력 한 청구서 수신 주소와 같이 여러 페이지에 걸쳐 상태 정보를 유지하려면 쿠키, 서버 측 세션 메모리 및 양식 값과 같은 항목이 필요합니다.

양식 값은 GET에 제출되지 않으므로 문제가되므로로드 한 페이지를 생성하는 데 필요한 정보가 포함 된 POST 대신 GET으로 페이지를 새로 고치면 정보가 손실됩니다. 세션 메모리의 서버 측에서 설정).

양식을 다시 게시하는 데는 두 가지 일반적인 문제가 있습니다. 첫 번째 위험은 서버에서 처리가 이미 발생했기 때문에 처리를 다시 요청하면 같은 항목을 두 번 주문하는 것과 같이 잘못 될 수 있습니다.

두 번째는 게시물의 결과로 서버 측에 데이터가 누적되어 해당 데이터를 복제 할 수 있다는 것입니다. 이것은 장바구니에 상품을 한 번 추가하는 것과 유사하지만 두 개의 인스턴스가 있음을 발견합니다. 응용 프로그램의 예상 흐름을 벗어나 비정상적으로 발생했기 때문에 개발자는 데이터의 비정상 상태를 설명하지 못하여 어떤 종류의 오류가 발생하거나 원하는 것보다 더 많은 작업을 수행 할 수 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.