422错误在Microsoft Edge上的Laravel ajax表单发布

时间:2018-03-30 12:11:09

标签: javascript php json ajax laravel

我有一个将一些数据发布到我的laravel控制器的表单,它似乎在Chrome,Safari和Firefox上运行得非常好,但在Edge上出现422(不可处理的实体)错误。

有人能看出可能出现的问题吗?我认为它与请求中提交的文件有关。

我之前有过:

data: $(this).serialize(),

但这对文件提交无效。

$.ajax({
                //global: false, //Stops global ajaxError handling from app/settings.js --}}
                type: "POST",
                url: "/admin/logs",
                dataType: 'json',
                data: new FormData(this),
                processData: false,
                contentType: false,
                success: function (response) {
                    $('#loading').css({
                        display: "none"
                    });
                    toastr.options.onHidden = function() { window.location.href = '/admin/logs'; }
                    toastr.success(response.message);
                },
                error: function (response) {
                    $('#loading').css({
                        display: "none"
                    });
                }
            })

感谢。

2 个答案:

答案 0 :(得分:1)

好的,似乎是固定的。这是Edge很难,最大文件大小/最大帖子大小的混合,enctype="multipart/form-data"正如@Rick_Jellema所说似乎有助于从Edge上的文件中接受正确的mime类型。我最终没有改变最初的ajax提交或服务器上的验证。谢谢你们

答案 1 :(得分:0)

  

422(不可处理的实体)

这是Laravel在ajax请求中显示验证错误的方式。 您可以从该响应中提取数据,并在需要时显示错误消息。 删除验证规则后尝试确认。

查看官方docs