Jquery表单数据传递为空

时间:2018-06-18 22:07:52

标签: javascript jquery ajax laravel request

我有一个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())的请求,该请求为空数组。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

通过删除以下问题解决了问题:

contentType: false,
processData: false,

正如@Taplar在评论中提到的那样,

  

“默认情况下,数据作为对象传入数据选项   (技术上,除了字符串之外的任何东西)将被处理和   转换为查询字符串,适合默认的内容类型   “应用程序/ x WWW的形式进行了urlencoded”