Формы отправляются дважды в Struts 2, приложение Hibernate с сетевым прокси

У меня есть приложение struts2, Hibernate и Spring. Он работает правильно на нашем локальном конце. Когда мы развертываем приложение на сервере разработки, иногда некоторые формы отправляются дважды при отправке формы. Это приводит к тому, что в базу данных заносятся дубликаты данных.

Это происходит только на сервере. Это редко происходит в Firefox, но очень часто в IE. И опять же это происходит только на некоторых формах, а не на других формах. Однако нет ничего, что отличало бы эти формы.

Иногда мы использовали кнопку отправки struts 2 для отправки форм, а иногда использовали java-скрипт с простыми кнопками для отправки формы.

В качестве последнего способа мы можем использовать перехватчик для предотвращения отправки двойных форм (нам придется внести изменения во многие формы), но дело в том, что это вообще не происходит на локальном конце. Почему это происходит только на сервере, а также на некоторых формах, а иногда и только.

РЕДАКТИРОВАТЬ:

Еще одна вещь, которую я заметил, это то, что когда я не использую сетевой прокси, даже на сервере форма не отправляется дважды, но когда используется сетевой прокси, форма отправляется дважды. Приложение нормально работает без прокси. Дубликатов нет вообще.

При чем здесь прокси? Кто-нибудь сталкивался с такими проблемами с сетевым прокси и двойной отправкой формы?

РЕДАКТИРОВАТЬ2:

Только сейчас я обнаружил, что при использовании прокси иногда отказывают в доступе, в этом случае почтовый запрос отправляется браузером дважды, что приводит к двойной отправке формы.

Если я вижу заголовок http, я вижу два почтовых запроса, один из которых имеет следующие заголовки.

HTTP/1.1 407 Требуется аутентификация прокси-сервера (серверу ISA требуется авторизация для выполнения запроса. Доступ к службе веб-прокси запрещен.)

Есть идеи по этому поводу? Пожалуйста помоги.


person ashishjmeshram    schedule 31.05.2011    source источник
comment
Установили ли вы перехватчик токенов (предотвращает повторную отправку формы)   -  person lschin    schedule 31.05.2011
comment
@lschin Нет, я этого не делал. Это то, что я буду использовать, наконец, если у меня не будет другого решения. Но проблема не в том, что отправляются двойные формы, а в чем-то другом. Не знаю что.   -  person ashishjmeshram    schedule 31.05.2011
comment
Эй, пожалуйста, давай, так много гуру и экспертов по SO. Я очень старался над этим, но безуспешно.   -  person ashishjmeshram    schedule 31.05.2011
comment
Вы пытались установить meta header, например. : <meta http-equiv="Cache-Control" content="no-store"/>, <meta http-equiv="Pragma" content="no-cache"/>, <meta http-equiv="Expires" content="0"/>   -  person lschin    schedule 31.05.2011
comment
@lschin. Привет. Спасибо за ответ. У меня есть эти метатеги на моей странице макета.   -  person ashishjmeshram    schedule 31.05.2011


Ответы (1)


Если вы используете jsp и используете

<html:submit .... onClick="some javascript code">

вы можете попробовать использовать

<html:button .... onClick=:some javascript code" >

Состояние случилось со мной было

  1. Я использую тег «форма» на своей странице jsp.
  2. Я использую дополнительную кнопку внутри тега формы, которая использует javascript для отправки формы.

Надеюсь, это поможет.

person exiter2000    schedule 15.09.2011