【问题标题】:How can I display Laravel errors when loading via AJAX通过 AJAX 加载时如何显示 Laravel 错误
【发布时间】: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 错误。右键单击->检查元素->网络部分将显示实际的错误消息。

标签: jquery laravel-4


【解决方案1】:

您可以使用这个漂亮的函数获取所有 AJAX 错误。然后,您只需在控制台中显示从 Laravel 获得的 JSON 对象。我经常用这个。

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

您还可以获得更多信息。

【讨论】:

    猜你喜欢
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    • 2019-11-07
    相关资源
    最近更新 更多