微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我正在执行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表单请求验证,如果AJAX表单提交,则会发送422状态代码以验证失败以及错误.您现在可以做两件事来更改状态代码并从控制台中删除错误消息(仅在这种情况下):

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

return new JsonResponse($errors, 422);

这样的事情:

$errors [‘status’] =’错误’;
返回新的JsonResponse($errors,200);
>不使用表单请求验证,而是在控制器功能中创建一个用于验证的Validator实例,并在验证失败时返回JSON response,其中包含200个状态代码.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐