2013-11-27 59 views
2

我正在使用Laravel 4構建Web應用程序。我網站上的幾乎所有鏈接都通過jQuery AJAX加載內容。但是,當我正在構建,並且Laravel引發錯誤時,錯誤頁面不會顯示在我的目標區域中。所以我最終禁用了AJAX,所以我可以看到Laravel拋出的錯誤。如何在通過AJAX加載時顯示Laravel錯誤

有什麼我可以改變我的AJAX加載器,將顯示Laraval錯誤?

function LoadContent(url, target, method, data) 
    { 
     $(target).fadeOut(20); 

     var loadingTimeout = setTimeout(function() { $(target).html('<div style="text-align:center;font-size:150%;">Loading ...</div>').fadeIn(200); }, 1000); 

     var request = $.ajax({ url: url, type: method, data: data }); 

     var tooLongTimeout = setTimeout(function() { request.abort(); request = false; $(target).html('<div class="large-9 large-centered columns"><h1>Request Failed</h1><p>Please try again or contact us to report the issue.</p></div>').fadeIn(200); }, 60000); 

     request.done(function(result) { 
       clearTimeout(loadingTimeout); 
       clearTimeout(tooLongTimeout); 
       $(target).html(result).fadeIn(50); 
       AjaxElements(); 
     }); 
    } 
+0

你可以嘗試把你的代碼放在try-catch塊並捕獲錯誤服務器端,然後返回一個json編碼的錯誤消息?我以前沒有遇到過這個問題,但這將是我的第一個方法。此外,在重新閱讀您的問題之後,您可能會更好地在服務器端代碼上進行單元測試,而不是嘗試調試客戶端。 – echochamber

+0

如果您使用Google Chrome,則可以看到Laravel錯誤。右鍵單擊 - >檢查元素 - >網絡部分會顯示您的實際錯誤信息。 – Anam

回答

2

你可以用這個漂亮的函數來獲取所有的AJAX錯誤。然後,您只需在控制檯中顯示您從Laravel獲得的JSON對象。我經常使用它。

$(document).ajaxError(function(event, jqxhr, settings, exception) { 
    var error = $.parseJSON(jqxhr.responseText); 
    console.log(error.error) 
}); 

還有很多更多的信息,你可以得到與此。

相關問題