无法使用ajax

时间:2019-01-27 19:55:37

标签: jquery laravel file

我正在尝试使用和ajax调用将文件发送到我的控制器。我经历了很多答案,然后想到了这段代码。

 $('#btn_stock_create').on('click',function(){
    var create_stock_type = $('#create_stock_type').val();
    var create_tag_no = $('#create_tag_no').val();
    var formData = new FormData();
    formData.append("file", $("#create_image")[0].files[0]);
    $.ajax({                    
        url: '/stocks/create',
        type: 'POST',     
        data: {
             _token: CSRF_TOKEN,
             create_stock_type:create_stock_type,
             create_tag_no:create_tag_no,
             create_image:formData,
        },
        processData: false,
        contentType: false,
        cache: false,
        dataType: 'json',                   
        success: function (data) { 
           if (data.result == 1) {
                table.ajax.reload();
                swal({
                    title: data.status,
                    text:  data.message,   
                    icon:   "success",
                });
                $('#createModal').modal('hide');
                $('#createModal').find('form').trigger('reset');
            }
        }
    }); 
});

我的表单位于引导程序模式内。我的表格如下:

   <form id="create_stock_form" class="form-horizontal" enctype="multipart/form-data">
       <div class="form-group">
         .... (Rest of the inputs)
      </div>
      <div class="form-group">
         <div class="row">
            <div class="col-md-4">
              <label for="create_image" class="col-md-12 control-label" >Stock Image</label>
              <div class="col-md-12">
               <input type="file" class="form-control-file" id="create_image">
              </div>
            </div>
          </div>
      </div>
  </form>

因此,当ajax被调用时,将显示Handler Exception。

C:.. \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Exceptions \ Handler.php。

谁能告诉我为什么会这样。我似乎无法使用我的Ajax函数将文件发送到控制器。还是对此有其他解决方案。 请帮助我。

1 个答案:

答案 0 :(得分:0)

我希望这个帮助

在输入中添加接受属性

<input type="file" class="form-control-file" id="create_image" accept="image/*>

Ajax提交请求

$('#btn_stock_create').on('click',function(){
   var formData = new FormData($('#create_stock_form').find('#create_image')[0]);
 $.ajax({                    
    url: '/stocks/create',
    type: 'POST',     
    headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
    data: formData,
    processData: false,
    contentType: false,
    cache: false,
    dataType: 'json',                   
    success: function (data) { 
       if (data.result == 1) {
            table.ajax.reload();
            swal({
                title: data.status,
                text:  data.message,   
                icon:   "success",
            });
            $('#createModal').modal('hide');
            $('#createModal').find('form').trigger('reset');
        }
    }
  }); 
});