Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.10.2010, 10:31
Новичок на форуме
Отправить личное сообщение для christoforov` Посмотреть профиль Найти все сообщения от christoforov`
 
Регистрация: 13.10.2010
Сообщений: 3

Обновление страницы с элементом FORM
Здравствуйте.
На странице есть элемент FORM. Передаю данные на сервер. Сервер их принимает и отображает на результирующей странице.
Если нажать "Обновить страницу", то браузер предлагает повторно отправить данные на сервер (мне повторно отправлять данные совсем не нужно!).
После мучений привел начало формы к следующему виду:
<form method=post action=/cgi-bin/forum.pl onSubmit="this.submit(); this.reset();">
В результате предложение браузера выскакивает, но данные вторично не отправляются.
Как избавиться от этого предложения?
Ответить с цитированием
  #2 (permalink)  
Старый 13.10.2010, 10:38
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Не отдавать сервером никакой контент на POST запросы, а делать редирект на GET.
Ответить с цитированием
  #3 (permalink)  
Старый 13.10.2010, 10:49
Новичок на форуме
Отправить личное сообщение для christoforov` Посмотреть профиль Найти все сообщения от christoforov`
 
Регистрация: 13.10.2010
Сообщений: 3

А можно поподробнее?
Если исправит на <form method=get action=/cgi-bin/forum.pl>
...
<input type=submit value="Отправить">
</form>
, то при обновлении страницы запрос не выдается, но сообщение отправляется повторно...
Ответить с цитированием
  #4 (permalink)  
Старый 13.10.2010, 10:53
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

У вас щас: отправили на сервер POST-запрос, сервер выдал в ответ контент.
Надо: отправили на сервер POST-запрос, сервер выдал редирект на другой урл.
Ответить с цитированием
  #5 (permalink)  
Старый 13.10.2010, 10:57
Кандидат Javascript-наук
Отправить личное сообщение для lolka84 Посмотреть профиль Найти все сообщения от lolka84
 
Регистрация: 23.08.2010
Сообщений: 123

christoforov`, http://phpforum.ru/index.php?showtopic=34620&hl=
Ответить с цитированием
  #6 (permalink)  
Старый 13.10.2010, 13:04
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Вот тут уточнение. В PHP мало послать заголовок Location, нужно установить код ответа в 303 (по умолчанию при использовании header("Location: …") ставится 302).

Разница в том, что получив 302 браузер (в соответствии с RFC 1945 и RFC 2068) не должен менять метод запроса. Т.е., редиректнуться с методом POST.

Получив же в ответ статус 303, браузеру следует редиректнуться, используя метод GET.

Нормативная документация
Ответить с цитированием
  #7 (permalink)  
Старый 13.10.2010, 13:17
Новичок на форуме
Отправить личное сообщение для christoforov` Посмотреть профиль Найти все сообщения от christoforov`
 
Регистрация: 13.10.2010
Сообщений: 3

На данный момент сделал связку из двух файлов:
<form method=post action=/cgi-bin/forum2.pl>
<input type=submit value="OK">
</form>

а в скрипт forum2.pl прописал
<meta http-equiv="Refresh" content="4;url=/cgi-bin/forum.pl">
Это называется "Редирект"?

Все замечательно работает, но хотелось бы уместить весь форум в ОДИН файл.

PHP не подходит, нужен только JS
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление страницы после получения ответа от сервера potrashitel AJAX и COMET 9 24.02.2015 10:04
Постоянное обновление страницы. Как? ratt Общие вопросы Javascript 9 13.10.2010 02:55
Обновление страницы A.N.R.I jQuery 3 30.03.2010 14:47
Авто обновление страницы PHP master AJAX и COMET 7 18.01.2009 16:01
Цикличное обновление страницы Roman_kstu Общие вопросы Javascript 7 29.05.2008 05:55