这是一些代码。
形式:
<form action="/candidateajax/add/" enctype="multipart/form-data" method="post" accept-charset="utf-8" name="candidate" id="addcand">
<input type="hidden" id="token" name="_token" value="{{ csrf_token() }}">
<div>
Name
{!! Form::text('first_name', null, array('placeholder'=>'First Name')) !!}
{!! Form::text('last_name', null, array('placeholder'=>'Last Name')) !!}
</div>
<div id="candimages">
Image
{!! Form::file('image', null) !!}
</div>
<div>
Bio<br/>
{!! Form::textarea('bio', null, array('placeholder'=>'Bio Text')) !!}
</div>
<div>
Q&A<br/>
{!! Form::textarea('qa', null, array('placeholder'=>'Q&A Text')) !!}
</div>
<div>
Additional Info<br/>
{!! Form::textarea('html', null, array('placeholder'=>'Additional Info Text')) !!}
</div>
<div>
Party
{!! Form::select('party', $parties) !!}
</div>
<div>
<!--<button type="button" id="addcandbtn">Add Candidate</button>-->
<button type="submit" id="addcandbtn">Add Candidate</button>
</div>
</form>
<div>
Party
{!! Form::select('party', $parties) !!}
</div>
<div>
<!--<button type="button" id="addcandbtn">Add Candidate</button>-->
<button type="submit" id="addcandbtn">Add Candidate</button>
</div>
</form>
的Javascript / jQuery的:
$("#addcand").on('submit', function(e){
var dataser = $("#addcand").serialize();
console.log(dataser); // Proves that the serialized form has data
e.preventDefault();
$.ajax( {
url: '/candidateajax/add/',
data: dataser,
type:'POST',
cache:false,
dataType: 'json',
enctype:'multipart/form-data',
success:function(response){
console.log(response);
},
error: function(jqXHR, textStatus, errorThrown){
console.log(jqXHR.responseText);
}
});
});
Laravel控制器:
public function createCandidateAjax(Request $request)
{
$input = Input::all();
return response()->json($input);
}
我已经尝试返回并同时转换$ input和$ request。他们都是空的。
非常感谢任何帮助。谢谢!
答案 0 :(得分:0)
好的,谢谢你的帮助。我发现我的ajax请求是作为GET请求收到的,而不是POST请求,即使Ajax方法/类型设置为POST并且表单操作设置为POST。当我删除尾随&#34; /&#34;从URL参数,它作为POST发送就好了并按预期工作。
抬头,根据对Laravel 5.1的ajax请求,我无法解释为什么Laravel 5.1不喜欢尾随&#34; /&#34;但是它没有。