我正在使用Omnifaces FullAjaxExceptionHandler - 這很好用,但是當我做一個ajax調用並且有一個onevent函數檢查狀態=='成功'時,它是仍然被調用,即使FullAjaxExceptionHandler已經呈現錯誤頁面。 (我使用JSF(鑽嘴魚科2.1.3在GlassFish 3.1.1)Omnifaces - FullAjaxExceptionHandler - f:ajax onevent status is success
JSF代碼:
<h:commandButton value="myButton"> <f:ajax listener="#{myBean.myBeanFunction()}" render="someDiv" onevent="myFunction"/> </h:commandButton>
JavaScript代碼:
function myFunction(e) { if (e.status == 'success') { alert("Success"); } }
所以我需要一些方法如果FullAjaxExceptionHandler帶我進入錯誤頁面,則不執行javascript函數
設計不可能改變ajax響應狀態,錯誤狀態會導致響應數據被忽略(並且因此最終用戶不會得到任何反饋)。什麼是你需要在「成功」狀態上掛鉤的功能需求,以及它究竟以這種方式失敗?它可以以不同的方式解決。 – BalusC
當ajax調用成功完成時,我需要顯示一個對話框,但是當調用過程中出現錯誤時,它會呈現錯誤頁面,但仍會嘗試顯示對話框。該對話框實際上並不顯示,但對話框是模態的,因此錯誤頁面以模態背景結束,並且您無法單擊頁面上的任何內容。如果FullAjaxExceptionHandler呈現錯誤頁面,有什麼辦法可以不執行onevent javascript?或者是否有辦法在onevent javascript函數中放置某種數據,這樣可以檢查,以便我不試圖顯示對話框? – jc12
我剛剛發現,如果您使用primefaces p:commandButton,或者如果使用p:ajax,則它可以正常工作。不知道爲什麼它使用f:ajax時工作不同。 – jc12