다음 해결 방법을 찾았습니다. 객체 POST
를 조작하여 요청을 처리 한 후 리디렉션을 피할 수 있습니다 history
.
따라서 HTML 형식이 있습니다.
<form method=POST action='/process.php'>
<input type=submit value=OK>
</form>
서버에서이 양식을 처리 할 때 다음 과 같이 헤더 /the/result/page
를 설정하여 사용자를 리디렉션하는 대신 Location
:
$cat process.php
<?php
process POST data here
...
header('Location: /the/result/page');
exit();
?>
POST
ed 데이터를 처리 한 후 작게 렌더링 <script>
하고 결과/the/result/page
<?php
process POST data here
render the <script> // see below
render `/the/result/page` // OK
?>
<script>
당신은 렌더링한다 :
<script>
window.onload = function() {
history.replaceState("", "", "/the/result/page");
}
</script>
결과는 다음과 같습니다.
보시 POST
다시피 양식 데이터는 process.php
스크립트로 표시됩니다.
이 스크립트 프로세스는 POST
데이터 및 렌더링 에드 /the/result/page
번 과 :
- 리디렉션 안함
POST
페이지를 새로 고칠 때 데이터가 다시 표시되지 않음 (F5)
POST
브라우저 기록을 통해 이전 / 다음 페이지로 이동할 때 다시
UPD
다른 솔루션으로 Mozilla FireFox 팀 은 기능 요청 을 통해 사용자가 헤더처럼 작동 하고 패턴이 더 이상 사용되지 않도록 헤더 를 설정할 수 있습니다.NextPage
Location
post/redirect/get
한마디로. 서버가 양식 POST
데이터를 성공적으로 처리 하면 :
NextPage
대신 설치 헤더Location
- 패턴으로 요청을
POST
위해 렌더링 할 때 양식 데이터 처리 결과 렌더링GET
post/redirect/get
브라우저는 NextPage
헤더를 볼 때 차례로 :
- 조정
window.location
과 NextPage
가치
- 사용자가 페이지를 새로 고치면 브라우저는 데이터 를 재구성
GET
하는 NextPage
대신 요청을 협상 POST
합니다.
나는 이것이 구현된다면 우수하다고 생각하지 않습니까? =)