2014-01-23 132 views
0

我有一個jQuery函數是這樣的:爲什麼.ajaxError會執行兩次?

<script type="text/javascript"> 
    $(document).ajaxError(function() { 
     // Show only an alert(); 
     alert("An error occurred. Please try again after some time."); 
    }) 

</script> 

被觸發呼叫按鈕:

<p:commandButton id="deleteButton" 
    value="Delete Urls" 
    styleClass="action-button" 
    actionListener="#{controller.deleteUploadedUrls}" 
    immediate="true" 
    update="btnPanel messages" 
    oncomplete="view.disableNextTabs();"/> 

的問題是,該警報顯示兩次。

爲什麼警報顯示兩次?

+7

提交兩個AJAX請求?不可能說給你的極其模糊的代碼示例。 – Madbreaks

+0

你在頁面內進行多個ajax調用嗎? – Jason

+1

它會顯示兩次,因爲兩個ajax請求或失敗,或者您綁定了兩次事件。 –

回答

0

看來你使用update panel,這是ASP.NET WebForm Framework的一部分:

update="btnPanel messages" 
oncomplete="view.disableNextTabs();" 

update panel穿過整個頁面的LiveCycle。當您的頁面已被加載時,您的errorHandler第一次執行;它在更新後再次執行。

+0

我完全刪除了'update ='btnPanel messages'',並且它仍然顯示兩次警報:(這是在primefaces中。 – user1860447

+0

它是一個ajaxError處理程序,所以你的ajax請求失敗,請打開你的開發工具並檢出 – roland

+0

我正在通過拋出一個異常服務器端而不是捕獲異常來實現它,我正在實現對ajax調用發生的錯誤的異常處理。在發生錯誤時,客戶端是否有另一種方法可以顯示一些消息? – user1860447

相關問題