2017-02-14 29 views
1

我試圖用我的JSP後端實現smoothState.js(https://github.com/miguel-perez/smoothState.js)。 我第一次嘗試提交表單時出現此錯誤。我第二次按提交它,我不知道是什麼原因,但發現了一個可能的線索。

POST http://localhost:8080/internal/inquiry/[object%20HTMLInputElement] 404 (Not Found) 

它只發生在與name="action"隱藏輸入的窗體上。例如,如果我的形式是這樣的:

<input type="hidden" name="action" value="<%=Inquiry.CREATE_ACTION_DESCRIPTION_DATA%>" /> 

這是我提交的代碼。

$(document).ready(function(){ 


$('#descriptionData').parsley().on('form:success', function() { 
    var $form = $("#descriptionData"); 
    var action = "<%=Inquiry.CREATE_ACTION_DESCRIPTION_DATA%>"; 
    var formUrl = '/inquiry.do?action=' + action + '&ajax=1'; 

    $form.submit(function (ev) { 
     $.ajax({ 
     type  : "POST", 
     url  : formUrl, 
     data  : $form.serializeArray(), 
     async : true, 
     success : function(data) { 
       var smoothState = $('#main-cont').smoothState().data('smoothState'); 
       smoothState.load(data.redirectPage); 
      } 
     }); 

     ev.preventDefault(); 
    }); 
}); 

}); 

任何幫助,將不勝感激。

編輯:附加照片

響應中的第一個提交

enter image description here

響應中的第二提交

enter image description here

+0

爲什麼你需要'name = action'輸入元素,如果你不使用它? – Mikey

+0

@Mikey我認爲他在後臺使用它 –

+0

請在此處發佈生成的HTML元素,當您訪問該頁面時,應該會出現一些內容代替「<%= Inquiry.CREATE_ACTION_DESCRIPTION_DATA%>」 – Lemmy4555

回答

-1

很高興看到一些jsp代碼,但現在我的猜測是,如果#descriptionData是實際的,那麼你最好只用$ form.serialize()發送數據