如何从在laravel Ajax请求数据
我做Ajax请求,并把该数据如何从在laravel Ajax请求数据
$.ajax({
url: "{{URL::to('match')}}/"+ id,
type: 'PUT',
// dataType: 'default: Intelligent Guess (Other values: xml, json, script, or html)',
data: {
match_id : id,
start_time : newTime,
competitionId: {{$cid}},
_token: '{{ csrf_token() }}'
}
})
和laravel试图让这个数据
dd($request->start_time);
,但它不工作我我得到空
在Chrome开发者工具 数据与发送Ajax请求正确,这是一个简单的
match_id:1
start_time:03:00
competitionId:1
_token:9p8plPay7HLvJvMrTgxayEH74Ow6c2D1cli1yU01
所有这一切工作正常之前,我搬到这个网站到新的服务器
我错过了任何文件?
它正常工作后,我改变了类型后,然后添加一个字段_method:PUT 即
$.ajax({
url: "{{URL::to('match')}}/"+ id,
type: 'POST',
// dataType: 'default: Intelligent Guess (Other values: xml, json, script, or html)',
data: {
_method: 'PUT',
match_id : id,
start_time : newTime,
competitionId: {{$cid}},
_token: '{{ csrf_token() }}'
}
})
型PHP工匠路线:列表
检查你的路线有例如您
方法=把
乌里=匹配/ {}匹配
名称= match.update
Action = App \ Http \ Controllers \ MatchController @update //您的方法
路线:
Route::resource('/match', 'MatchController');
这是你的Ajax调用:
$.ajax({
url: 'match/'+ id, //this is your uri
type: 'PUT', //this is your method
data: { match_id:id, start_time:newTime },
dataType: 'json',
success: function(response){
}
});
控制器:
public function update(Request $request, $match_id)
{
if(request()->ajax()){
$match = Match::find($match_id);
$validator = Validator::make($request->all(), [
'start_time'=>'required',
]);
if($validator->passes())
{
$match->start_time = $request->start_time;
$match->save();
return response()->json(['msg'=>'Updated Successfully', 'success'=>true]);
}
return response()->json(['msg'=>$validator->errors()->all()]);
}
}
我正在使用资源控制器路由::资源('/ match',“MatchController”); –
同样我使用Route :: resource('/ trademark','TrademarksController'); –
如果您使用的资源路径,你应该有应用程序\ HTTP \控制器\ MatchController控制器的方法后,@方法 –
尝试通过$ request-> input获取参数 - 根据https://laravel.com/docs/5.4/requests#retrieving-input,无论请求方法如何,都应该可以工作。 – CBroe
检查浏览器中的网络选项卡(Chrome)。 –
我已经使用这种方法。我也尝试过dd($ request-> all());但得到这[] –