如何从laravel中的ajax请求中获取数据

时间:2017-04-18 14:05:45

标签: jquery ajax laravel laravel-5.4

我正在执行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

在将此网站移至新服务器

之前,所有这些工作正常

我错过了任何文件吗?

2 个答案:

答案 0 :(得分:4)

我将类型更改为Post后再添加一个字段_method:PUT 即

 $('#filter').submit(function(){
    var filter = $('#filter');
    $.ajax({
        url:filter.attr('action'),
        data:filter.serialize(), // form data
        type:filter.attr('method'), // POST
        beforeSend:function(xhr){
            filter.find('button').text('caricamento...'); // changing the button label
        },
        success:function(data){
            filter.find('button').text('Filtra'); // changing the button label back
            $('.load').html(data); // insert data
            $('.grve-iso-spinner').hide();
        }
    });
    return false;
});

答案 1 :(得分:0)

输入php artisan route:list

检查你的路线,例如你的

Method = put

Uri = match / {match}

Name = match.update

Action = App \ Http \ Controllers \ MatchController @ 更新 //您的方法

路线:

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()]);
    }
}