1

struts2、Hibernate、および Spring アプリケーションがあります。それは私たちのローカルエンドで適切に機能します。アプリケーションを開発サーバーにデプロイすると、フォームの送信時に一部のフォームが 2 回送信されることがあります。これにより、データベースに重複データが入力されます。

これはサーバー上でのみ発生しています。これは Firefox ではめったに発生しませんが、IE では非常に頻繁に発生します。また、これは一部のフォームでのみ発生し、他のフォームでは発生しません。ただし、これらのフォームを区別するものは何もありません。

フォームを送信するためにStruts 2送信ボタンを使用することもあれば、単純なボタンを備えたJavaスクリプトを使用してフォームを送信することもあります。

最後の方法として、インターセプターを使用してフォームの二重送信を防ぐことができます (多くのフォームを変更する必要があります) が、ポイントは、ローカル エンドではまったく発生しないことです。なぜそれがサーバーでのみ発生し、それも一部のフォームで、場合によってはのみ発生するのですか。

編集:

私が気付いたもう 1 つのことは、ネットワーク プロキシを使用しない場合でも、サーバー フォームは 2 回送信されませんが、ネットワーク プロキシを使用するとフォームが 2 回送信されることです。アプリはプロキシがなくても正常に動作します。重複は一切ありません。

どのようなプロキシがそれと関係がありますか? ネットワーク プロキシとダブル フォームの送信で、このような問題に遭遇した人はいますか?

EDIT2:

ちょうど今、プロキシを使用しているときにアクセスが拒否されることがあることがわかりました。その場合、投稿リクエストがブラウザによって2回送信され、フォームが2回送信されます。

http ヘッダーが表示されている場合、2 つの投稿リクエストが表示され、そのうちの 1 つがヘッダーに続くことがわかります

HTTP/1.1 407 Proxy Authentication Required (ISA Server は、要求を満たすために承認が必要です。Web Proxy サービスへのアクセスは拒否されました。)

これについてのアイデアはありますか?助けてください。

4

1 に答える 1

0

jspを使用して使用する場合

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

あなたは使用しようとするかもしれません

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

私に起こった状態は

  1. JSP ページで「form」タグを使用しています
  2. フォームを送信するJavaScriptを使用しているフォームタグ内で追加のボタンを使用します

それが役立つことを願っています。

于 2011-09-15T20:49:32.607 に答える