如何从在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 

所有这一切工作正常之前,我搬到这个网站到新的服务器

我错过了任何文件?

+0

尝试通过$ request-> input获取参数 - 根据https://laravel.com/docs/5.4/requests#retrieving-input,无论请求方法如何,都应该可以工作。 – CBroe

+0

检查浏览器中的网络选项卡(Chrome)。 –

+0

我已经使用这种方法。我也尝试过dd($ request-> all());但得到这[] –

它正常工作后,我改变了类型后,然后添加一个字段_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()]); 
    } 
} 
+0

我正在使用资源控制器路由::资源('/ match',“MatchController”); –

+0

同样我使用Route :: resource('/ trademark','TrademarksController'); –

+0

如果您使用的资源路径,你应该有应用程序\ HTTP \控制器\ MatchController控制器的方法后,@方法 –