2013-07-02 116 views
0

我們有一個jsp表單,它在Button Click上被提交給一個Struts2 Action Class。從Action Class中,控件流向Service(java)類和DAO(Java iBatis)類。 DAO類調用oracle pl/sql過程。jQuery Ajax Post多次提交表單

問題:

回顧在行動/ Service的日誌報表/ DAO & PL/SQL程序表明,他們正在調用上的一個按鈕點擊2/3倍。它執行的次數是非常隨機的,但它從來沒有(只在代理服務器中部署代碼)。

奇怪的是,此功能工作正常(只調用一次),當我們的代碼部署在我們的發展&生產服務器(7.1的Websphere)。在我們的Staging服務器中部署完全相同的代碼(EAR)會面臨此多次提交錯誤。

我們嘗試了各種瀏覽器(IE 8 & IE 9),並且僅當我們嘗試訪問部署在我們的登臺服務器中的應用程序時纔會出現此問題。

我們所有的開發,分期&生產Websphere服務器是相同版本&補丁級別。

這是我們用於提交的javascript代碼。

$(document).ready(function() { 
         mask(); 
         var config = "${returnedCString}"; 

         var f = "${flagS}"; 

         if (f == "1"){ 
          $.post('<%=request.getContextPath()%>/applyComp' 
            ,function(data){ 
             unmask(); 

             $("#impactForm").attr('action','<%=request.getContextPath()%>/CompareForm'); 
             $("#impactForm").submit();  

            } 

          ); 
       } 
} 

的問題是,POST以下Struts的Action是發生了什麼事多次

$.post('<%=request.getContextPath()%>/applyComp' 
+0

嘗試解除綁定後點擊第一次提交。檢查按鈕是否被點擊兩次。或者它只是提出兩次請求 – wilsonrufus

+0

嘗試此鏈接,如果它有幫助http://stackoverflow.com/questions/9767871/jquery-submitting-a-form-twice – wilsonrufus

回答

0

添加提交行動以這樣的方式

$('.form_element').unbind('submit').bind('submit',function() { 
    // do stuff here... 
});