数据不通过formData传输

时间:2020-09-26 09:41:31

标签: ajax laravel

我有一个脚本,该脚本应该在不重新启动的情况下更新用户的帖子。但是由于某种原因,表单数据不会通过formData对象进行传输,除了在控制器中手动注册的那些字段(id,user_id)外,其他所有地方均为null。有什么问题吗?

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

$('.infinite-scroll').on('click', '#editPostButton', function(e) {
    e.preventDefault();

    var id = $(this).data('id');
    var user_id = $('#userForm').val();
    var form = document.getElementById('EditPostForm'+id);
    var formData = new FormData(form);

    $.ajax({
        url: "id"+user_id+"/"+id+"/edit",
        type: "PATCH",
        data: formData,
        success: function(data) {
            console.log(data);
            $("#textpostdata"+id).html($(data).find("#textpostdata"+id).html());
            $("#closeButton"+id).click();
        },
        error: function() {
            console.log('error');
        },
        contentType: false,
        processData: false,
    });

});

还有我的控制器

public function editPost(storeRequest $request, $id, $postId) {

    $user = User::find($id);

    if(!$user && $user != Auth::user()->id) {
        return abort(404);
    }

    $post = Profile::find($postId);

    if(!$post) {
        return abort(404);
    }

    $post->user_id = Auth::user()->id;
    $post->title = $request->title;
    $post->message = $request->message;
    $post->videoPost = str_replace('watch?v=', 'embed/', $request->videoPost);

    if($request->file('img')) {
        $path = Storage::putFile('public/' . Auth::user()->id . '/post', $request->file('img'));
        $url = Storage::url($path);
        $post->img = $url;
    }

    $post->update();

    //return redirect()->back();
    return $post;
}

0 个答案:

没有答案
相关问题