表格数据未在ajax电话上提交

时间:2016-12-10 09:19:29

标签: javascript php jquery ajax laravel

每次用户更改其个人资料图片时,我都需要进行ajax调用。我可以成功调用ajax,但问题是没有任何内容发送到服务器。

<form action="#" enctype='multipart/form-data' id="avatar-upload-form">
    <div class="form-group">
       <label class="btn btn-default btn-file btn-block">
              Upload new picture <input type="file" style="display: none;" name="profile_image" id="profile_image">
       </label>
    </div>
</form>


$('#profile_image').on('change', function() {
    var formData = new FormData("#avatar-upload-form");
    $.ajax({
        url: '/users/upload/avatar',
        type: 'POST',
        dataType: 'json',
        enctype: 'multipart/form-data',
        cache:false,
        processData: false,
        contentType: false,
        data: formData,
        success: function(data) {
           console.log(data);
        }, 
        error: function(error) {
           console.log(error);
        }
     })
});

enter image description here

PHP代码

Route::post('/users/upload/avatar', function() {
   dd(Request::file('profile_image')); // return empty array
});

1 个答案:

答案 0 :(得分:1)

自己解决这个问题。我只需要像这样使用标准的javascript表单对象:
document.getElementById('form_id')[0]