【发布时间】:2023-03-25 22:58:01
【问题描述】:
我正在使用 Laravel 4 构建一个 Web 应用程序。我网站上的几乎所有链接都通过 jQuery AJAX 加载内容。但是,当我正在构建时,Laravel 抛出错误,错误页面不会显示在我的目标区域中。所以我最终大部分时间都禁用了 AJAX,这样我就可以看到 Laravel 抛出的错误。
我可以用我的 AJAX 加载器更改哪些内容来显示 Laravel 错误?
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();
});
}
【问题讨论】:
-
你能不能试着把你的代码放在一个 try-catch 块中并在服务器端捕获错误,然后返回一个 json 编码的错误消息?我自己以前没有遇到过这个问题,但这将是我的第一种方法。此外,在重新阅读您的问题后,您最好对服务器端代码进行单元测试,而不是尝试调试客户端。
-
如果你使用的是谷歌浏览器,你会看到 Laravel 错误。右键单击->检查元素->网络部分将显示实际的错误消息。