tvolf
Новичок
Обновление страницы с временной задержкой без повторной отправки данных
Всем привет.
Такой вопрос. Есть такой фрагмент кода (просто смоделировал проблемную ситуацию):
То есть, по нажатию кнопки "Submit" должна подгрузиться та же самая страница с формой по прошествии 5 секунд. По идее, после этого обновление страницы в браузере по F5 не должно повторно выполнять запрос POST. Но почему-то это не работает. Попробовал посмотреть плагином HttpLiveHeaders заголовки запросов и ответов с момента нажатия кнопки "Submit" - вроде бы всё в порядке. Привожу их ниже:
===
http://test.local/test.php
POST /test.php HTTP/1.1
Host: test.local
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://test.local/test.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 9
name1=123
HTTP/1.1 200 OK
Date: Fri, 26 Mar 2010 16:25:00 GMT
Server: Apache/2.0.63 (Win32) PHP/5.2.6
X-Powered-By: PHP/5.2.6
refresh: 5; url=/test.php
Content-Length: 0
Keep-Alive: timeout=15, max=96
Connection: Keep-Alive
Content-Type: text/html
----------------------------------------------------------
http://test.local/test.php
GET /test.php HTTP/1.1
Host: test.local
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cache-Control: max-age=0
HTTP/1.1 200 OK
Date: Fri, 26 Mar 2010 16:25:05 GMT
Server: Apache/2.0.63 (Win32) PHP/5.2.6
X-Powered-By: PHP/5.2.6
Content-Length: 171
Keep-Alive: timeout=15, max=95
Connection: Keep-Alive
Content-Type: text/html
----------------------------------------------------------
===
Заметил, что в IE6 (в отличие от Firefox 3.6.2) всё работает так, как и ожидается,
то есть, после перезагрузки страницы при нажатии F5 повторного запроса POST
нет (во всяком случае, нет всплывающего окна, в котором бы предлагалось переотправить данные).
Кто что думает по этому поводу ?
Заранее благодарю за поддержку.
Всем привет.
Такой вопрос. Есть такой фрагмент кода (просто смоделировал проблемную ситуацию):
PHP:
<?php
if (isset($_POST['name1'])) {
header('refresh: 5; url=' . $_SERVER['REQUEST_URI']);
exit;
}
?>
<html>
<head>
</head>
<body>
<form action="" method="POST">
<input type="text" name="name1">
<input type="submit" value="Submit">
</form>
</body>
</html>
===
http://test.local/test.php
POST /test.php HTTP/1.1
Host: test.local
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://test.local/test.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 9
name1=123
HTTP/1.1 200 OK
Date: Fri, 26 Mar 2010 16:25:00 GMT
Server: Apache/2.0.63 (Win32) PHP/5.2.6
X-Powered-By: PHP/5.2.6
refresh: 5; url=/test.php
Content-Length: 0
Keep-Alive: timeout=15, max=96
Connection: Keep-Alive
Content-Type: text/html
----------------------------------------------------------
http://test.local/test.php
GET /test.php HTTP/1.1
Host: test.local
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cache-Control: max-age=0
HTTP/1.1 200 OK
Date: Fri, 26 Mar 2010 16:25:05 GMT
Server: Apache/2.0.63 (Win32) PHP/5.2.6
X-Powered-By: PHP/5.2.6
Content-Length: 171
Keep-Alive: timeout=15, max=95
Connection: Keep-Alive
Content-Type: text/html
----------------------------------------------------------
===
Заметил, что в IE6 (в отличие от Firefox 3.6.2) всё работает так, как и ожидается,
то есть, после перезагрузки страницы при нажатии F5 повторного запроса POST
нет (во всяком случае, нет всплывающего окна, в котором бы предлагалось переотправить данные).
Кто что думает по этому поводу ?
Заранее благодарю за поддержку.
