Отправка форм дважды в Struts 2, приложение Hibernate под управлением сетевого прокси - PullRequest
1 голос
/ 31 мая 2011

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

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

Мы иногда использовали кнопку отправки Struts 2 для отправки форм, а иногда использовали скрипт Java с простыми кнопками для отправки формы.

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

EDIT:

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

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

EDIT2:

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

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

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

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

1 Ответ

0 голосов
/ 16 сентября 2011

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

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

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

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

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

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

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

...