为什么我不能使用jquery发布laravel溃败?

时间:2017-04-04 18:34:27

标签: php jquery html laravel file-upload

我正在尝试提交以下单个值?

HTML:

 <form class="form-horizontal" role="form" method="POST"  enctype="multipart/form-data" name="frmanalyse" id="frmanalyse">
{{ csrf_field() }}
 <label for="marginsource" style="float: left;  width:150px; text-align:left;">Margin Source</label>
 <input type="file" name="marginsource" id="marginsource" >
 <br />
 </form>

脚本:

 <script type="text/javascript">
  $( "#frmanalyse" ).submit(function(event) {
            $.post( "marginanalyser", {username: "medo ampir"}, function( data ) {
                alert(data);
            });
            event.preventDefault();
  });

在laravel路线中

Route::post('marginanalyser',function(Request $request){
 echo $request->input('username');

 $file = $request->file('marginsource');
echo 'File Name: '.$file->getClientOriginalName();
});

根本没有在消息中显示。

1 个答案:

答案 0 :(得分:1)

更改JavaScript以使用FormData,因为您没有提交文件

$( "#frmanalyse" ).submit(function(event) {
    event.preventDefault();

    var formData = new FormData();
    formData.append('marginsource', $('#marginsource')[0].files[0]);
    formData.append('username', "medo ampir");

    $.ajax({
        url : window.location.origin + "/marginanalyser",
        type: "POST",
        data : formData,
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        processData: false,
        contentType: false,
        success:function(data, textStatus, jqXHR) {
            console.log(data);
        },
        error: function(jqXHR, textStatus, errorThrown){
            //if fails     
        }
    });
});