php - Laravel - 防止错误显示在控制台中

标签 php jquery ajax laravel laravel-5

我正在执行一个 ajax 请求,如果验证失败,则会向用户显示一条错误消息。

但是,用户也可以在控制台中看到错误消息。例如,如果用户没有完成其中一个字段,在控制台中,它会显示以下内容:

Failed to load resource: the server responded with a status of 422 (Unprocessable Entity)

我不想让他们看到错误。我怎样才能防止他们看到这样的错误以及控制台中的其他错误,如 501 错误和其他东西。我只是想显示一条警告说“发生错误”。我不想在控制台中显示任何内容。

我当前的 AJAX 代码:

(function ($) {
        $('#settingsForm').submit(function (e) {
            $.ajax({
                type: "POST",
                dataType: 'JSON',
                url: '/settings',
                data: $('#settingsForm').serialize(),
                beforeSend: function () {

                },
                success: function (data) {
                    message(data);
                },
                error: function (data) {

                    if (data.status === 422 ) {

                        var errors = $.parseJSON(data.responseText);
                        errorsHtml = '<div class="alert alert-danger"><ul>';
                        $.each(errors, function (index, value) {
                            errorsHtml += '<li>' + value + '</li>';
                        });
                        errorsHtml += '</ul></div>'
                        $('#status_settings').html(errorsHtml);
                    }

                }
            })
            ;

            e.preventDefault();
        })
        ;
    })
    (window.jQuery);

最佳答案

看起来您正在使用 Laravel 表单请求验证,它发送一个 422 状态代码表示验证失败以及如果 AJAX 表单提交时的错误。您现在可以做两件事来更改状态代码并从控制台删除错误消息(仅在这种情况下):

  1. 覆盖 vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php 中的响应函数,并在新函数中将状态代码更改为 200。从那里复制函数并将其粘贴到 app/Http/Requests/Request.php 中的 Request 类中。 更改以下行

    return new JsonResponse($errors, 422);
    

    像这样:

    $errors['状态'] = '错误'; 返回新的 JsonResponse($errors, 200);

  2. 不使用表单请求验证,而是创建一个 Validator在 Controller 函数中验证实例并返回 JSON response验证失败并返回 200 状态码。

关于php - Laravel - 防止错误显示在控制台中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34139234/

相关文章:

javascript - 如何禁用 Bootstrap 单选按钮?

javascript - 如何编写双重嵌套 for 循环的计数代码?

ASP.NET MVC $.ajax POST 未正确提交

javascript - 如何在 vue.js 2 上获取响应 ajax?

php - 如何使用php中的下一个和上一个按钮从mysql读取数据

php - XAMPP、Eclipse、PHP、MySQL : Fatal error: Call to a member function fetch_array() on null

javascript - 下拉选择简短且更好的代码

java - 使用 GWT 开发类似 google maps 的 Ajax 客户端

php - 我怎样才能显示每个办公室的员工总数,它们都存储在我的 php 数据库中?

php - PHP 与 Mysql 的错误