Javascript Jquery表单数据传递为空

Javascript Jquery表单数据传递为空,javascript,jquery,ajax,laravel,request,Javascript,Jquery,Ajax,Laravel,Request,我有一个ajax调用,在submit按钮上单击ajax调用启动 <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> &l

我有一个ajax调用,在submit按钮上单击ajax调用启动

<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>
在服务器端,我收到了带有
dd($request->all())
的请求,它是空数组。


我在这里遗漏了什么?

通过删除以下内容可以解决此问题:

contentType: false,
processData: false,
正如@Taplar在评论中提到的

默认情况下,数据作为对象传递到数据选项 (从技术上讲,字符串以外的任何内容)将被处理并 转换为查询字符串,符合默认内容类型 “应用程序/x-www-form-urlencoded”


你能把你的服务器端也添加进去吗?
$(“#editPet”)[0]
这应该是有价值的吗?可能应该是
$(“#editPet”).val()
不,我们不能把
$(“#editPet”).val()添加到php,它的juqery语法中。如果我在你的ajax请求中没有用php纠正你的话。
新表单数据($(“#editPet”)[0])
选中Preserve Log in Developer Tools并查看请求负载。然后您将知道它在哪一侧…尝试去掉
processData:false
“默认情况下,作为对象传递到数据选项的数据(从技术上讲,不是字符串)将被处理并转换为查询字符串,适用于默认内容类型“application/x-www-form-urlencoded”。如果要发送DOMDocument或其他未处理的数据,请将此选项设置为false。“您正在为其提供数据的FormData元素。您希望它在请求时将其转换为查询字符串。
contentType: false,
processData: false,