我有一个ajax调用,在提交按钮的位置单击ajax调用initiates
<form id="editPet" method="patch" enctype="multipart/form-data">
inputs...
<button id="updatePet" data-id="{{ $pet->uuid }}" data-token="{{ csrf_token() }}" type="button">SAVE</button>
</form>
Ajax电话:
$('#updatePet').click(function(e) {
e.preventDefault();
let petId = $(this).data("id");
$.ajaxSetup({ headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}});
$.ajax({
url: "/my/pet/update/" + petId,
type: "patch",
data: new FormData($("#editPet")[0]),
cache: false,
contentType: false,
processData: false,
success: function(response) {
// Do something
},
error: function(error) {
// Do something
}
});
});
在服务器端,我收到dd($request->all())
的请求,该请求为空数组。
我在这里缺少什么?
答案 0 :(得分:0)
通过删除以下问题解决了问题:
contentType: false,
processData: false,
正如@Taplar在评论中提到的那样,
“默认情况下,数据作为对象传入数据选项 (技术上,除了字符串之外的任何东西)将被处理和 转换为查询字符串,适合默认的内容类型 “应用程序/ x WWW的形式进行了urlencoded”