0

ビューにはSpring MVC 3とJSP/JSTLを使用しています。reCaptcha をフォームに組み込みました。フォームを送信すると、一貫性のない非常に奇妙な動作 (常に発生するわけではなく、ランダムです) に気付きました。これは Google Chrome でのみ発生します。

Web を検索しましたが、この問題に関する情報は見つかりませんでした。

基本的に、有効なキャプチャを含むフォームを送信すると、フォーム ページに戻されますが、キャプチャは有効です。私は幸運にもそれをデバッグすることができ、キャプチャが有効であることを確認しましたが、制御のフローは何らかの方法で傍受されています。

つまり、新しいビューを含む ModelAndView コントローラーを返す必要がありますが、代わりに、制御の流れは関数の先頭に戻ります!!! recaptcha コードにヒットしますが、この時点では recaptcha コードが無効であるため、FALSE と表示されます。その後、元のフォーム ページに戻ります。これについてイライラするのは、キャプチャが元々有効であり、通常の動作に従って実行される他の有効なロジックが原因で発生する本番データベースへのコミットがあることです。

reCaptcha ボックスは、エラーが表示されている唯一のボックスであり、コードを再入力する必要があることが示されています。唯一の大きな問題は、たとえ私の reCaptcha が悪かったとしても、すぐに戻ってきてもう一度やり直してくださいと言うべきですが、それは有効であると表示されず、制御の流れを乗っ取ってからフォームページにリダイレクトするべきです.

最終結果は、ユーザーが再度送信するため、データベースに 2 つの正確なレコードを取得することです。このようにしか起こりません。つまり、3 回以上送信する必要があるシナリオに遭遇したことはありません。

これは Google Chrome でのみ発生します。Firefox と IE でこれを試しましたが、この問題は見たことがありません。別の国の誰かがこのフォームを介して情報を送信したところです。使用しているブラウザーを尋ねたところ、Chrome であることが確認されました。私も、この問題が実際に問題であることを知るのに十分な経験を積んできました。

制御の流れが関数の先頭に戻る理由を知っている人はいますか?? 私が気付いたもう 1 つのことは、制御の流れが常に下に行くとは限らないということです。もう 1 回、私が通り抜けていたとき、それはちょうど一番上にジャンプしました。

私は実稼働システムでこれを理解しようとしているので、どんな助けも親切に感謝します!! ありがとう!!

4

0 に答える 0