为什么我不能使用jquery发布到laravel路由?
I'm trying to submit a single value as following?
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:
<script type="text/javascript">
$( "#frmanalyse" ).submit(function(event) {
$.post( "marginanalyser", {username: "medo ampir"}, function( data ) {
alert(data);
});
event.preventDefault();
});
in laravel routes:
Route::post('marginanalyser',function(Request $request){
echo $request->input('username');
$file = $request->file('marginsource');
echo 'File Name: '.$file->getClientOriginalName();
});
nothing shows in the message at all.
我正在尝试提交单个值,如下所示? p>
HTML: strong> p>
&lt; form class =“form-horizontal”role =“form”method =“POST”enctype =“multipart / form-data “name =”frmanalyse“id =”frmanalyse“&gt;
{{csrf_field()}}
&lt; label for =”marginsource“style =”float:left; width:150px; text-align:left;“ &gt;保证金来源&lt; / label&gt;
&lt; input type =“file”name =“marginsource”id =“marginsource”&gt;
&lt; br /&gt;
&lt; / form&gt;
code > pre>
脚本: strong> p>
&lt; script type =“text / javascript”&gt;
$ (“#frmanalyse”)。submit(function(event){
$ .post(“marginanalyser”,{username:“medo ampir”},function(data){
alert(data);
});
event.preventDefault();
});
code> pre>
p>
在laravel路线中: strong> p>
Route :: post('marginanalyser',function(Request $ request){
echo $ request-&gt; input('username');
$ file = $ request-&gt; file('marginsource');
echo'文件名:'。$ file-&gt; getClientOriginalName();
});
code> pre>
消息中根本没有显示。 p>
div>
Change your JavaScript to use FormData as you aren't submitting the file
$( "#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
}
});
});