【发布时间】:2018-09-09 11:33:38
【问题描述】:
我有一个表单可以将一些数据发布到我的 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"
});
}
})
谢谢。
【问题讨论】:
-
你有没有看到可能会破坏它的构成?
-
摆姿势了?抱歉什么意思?
-
尝试
alert();或console.log();使用您的数据来查看正在发送/发布的内容,就像@epascarello 所说的那样。把它贴在这里,所以我们也可以有一些见解。 @起源。例如succes: function (response) { alert(new Formdata(this)); // rest of current code }, -
我似乎记得 IE(可能还有边缘)将对象序列化为 [object Object] 或类似的东西。尝试使用 JSON.stringify() 进行序列化,我认为这在某些时候为我解决了类似的问题。
-
HTTP422: UNPROCESSABLE ENTITY - 请求格式正确,但由于语义错误而无法处理。 (XHR)POST - localhost:8000/admin/logs
标签: javascript php json ajax laravel